我可以制作一个随机选择并从屏幕顶部到底部的SK节点数组。例如,假设我有25个左右不同的平台,这些平台将会在肖像iPhone上掉下来。我需要它从数组中随机选择一个平台开始,然后在一定时间/或像素空间之后随机选择另一个以继续相同的动作,直到达到底部等等。Im新到快速但有相当体面的了解它。我还没有找到如何创建一个SKsprite节点数组。有人可以帮忙吗?快速移动多个精灵节点
到目前为止,我已经能够获得任何类似于我想要的效果的唯一方法是将每个节点放在屏幕上并将它们添加到字典中,并使它们像这样移动
类ObstacleStatus {
var isMoving = false
var timeGapForNextRun = Int(0)
var currentInterval = Int(0)
init(isMoving: Bool, timeGapForNextRun: Int, currentInterval: Int) {
self.isMoving = isMoving
self.timeGapForNextRun = timeGapForNextRun
self.currentInterval = currentInterval
}
func shouldRunBlock() -> Bool {
return self.currentInterval > self.timeGapForNextRun
}
和
func moveBlocks(){
for(blocks, ObstacleStatus) in self.blockStatuses {
var thisBlock = self.childNodeWithName(blocks)
var thisBlock2 = self.childNodeWithName(blocks)
if ObstacleStatus.shouldRunBlock() {
ObstacleStatus.timeGapForNextRun = randomNum()
ObstacleStatus.currentInterval = 0
ObstacleStatus.isMoving = true
}
if ObstacleStatus.isMoving {
if thisBlock?.position.y > blockMaxY{
thisBlock?.position.y -= CGFloat(self.fallSpeed)
}else{
thisBlock?.position.y = self.origBlockPosistionY
ObstacleStatus.isMoving = false
}
}else{
ObstacleStatus.currentInterval++
}
}
}
使用该用于该随机函数
func randomNum() -> Int{
return randomInt(50, max: 300)
}
func randomInt(min: Int, max:Int) -> Int {
return min + Int(arc4random_uniform(UInt32(max - min + 1)))
}
这一切对我来说都是以随机的时间间隔往下移动,但是增加随机数的最小或最大值并不会影响间隙的实际时间。我需要能够指定距离或时间差距。
您应该添加您迄今尝试的内容。 – 2014-09-28 07:51:33
增加了我用过的一些东西。 – Alex 2014-09-28 08:45:42