精灵在随机位置移动一次
Sprite move once time in random positions
我试图移动精灵在屏幕上随机移动,但精灵移动一次到随机位置并停止移动
这里我调用了定时器来制作形状
//Make shape Timer
func makeshapetimer () {
maketimer = Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #selector(makerandomShape), userInfo: nil, repeats: true)
}
//Make random shape
func makerandomShape () {
//Check if have more than 12 shapes
if shapesamount <= 12 {
let sprite = shape.copy() as! SKShapeNode
sprite.name = "Shpae \(shapesamount)"
sprite.position = CGPoint(x: frame.minX - sprite.frame.width, y: frame.maxY)
shapes.addChild(sprite)
shapesamount += 1
moveRandom(node: sprite)
}
}
在这里我做了一个随机位置动作并永远重复这个动作但是 运行 每个形状只有一次
//Move shape radmonly
func moveRandom (node: SKShapeNode) {
move = SKAction.move(to: CGPoint(x: CGFloat.random(min: frame.minX, max: frame.maxX), y: CGFloat.random(min: frame.minY, max: frame.maxY)), duration: shapespeed)
node.run(SKAction.repeatForever(move))
}
您的 moveRandom
函数每个精灵只调用一次。
这是您告诉它要做的事情:
- 得到一个随机的 x,y 位置 --- 假设它有 120,200
- 移动到 120,200 --- 并永远重复移动到 120,200
因此,精灵尽职尽责地移动到那个随机位置,并一直移动到那个位置。它永远不会回到起点,也永远不会移动到新的位置。
如果您希望精灵继续移动到新个随机位置,您需要在每次当前移动完成时创建一个新的随机位置。
我试图移动精灵在屏幕上随机移动,但精灵移动一次到随机位置并停止移动
这里我调用了定时器来制作形状
//Make shape Timer
func makeshapetimer () {
maketimer = Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #selector(makerandomShape), userInfo: nil, repeats: true)
}
//Make random shape
func makerandomShape () {
//Check if have more than 12 shapes
if shapesamount <= 12 {
let sprite = shape.copy() as! SKShapeNode
sprite.name = "Shpae \(shapesamount)"
sprite.position = CGPoint(x: frame.minX - sprite.frame.width, y: frame.maxY)
shapes.addChild(sprite)
shapesamount += 1
moveRandom(node: sprite)
}
}
在这里我做了一个随机位置动作并永远重复这个动作但是 运行 每个形状只有一次
//Move shape radmonly
func moveRandom (node: SKShapeNode) {
move = SKAction.move(to: CGPoint(x: CGFloat.random(min: frame.minX, max: frame.maxX), y: CGFloat.random(min: frame.minY, max: frame.maxY)), duration: shapespeed)
node.run(SKAction.repeatForever(move))
}
您的 moveRandom
函数每个精灵只调用一次。
这是您告诉它要做的事情:
- 得到一个随机的 x,y 位置 --- 假设它有 120,200
- 移动到 120,200 --- 并永远重复移动到 120,200
因此,精灵尽职尽责地移动到那个随机位置,并一直移动到那个位置。它永远不会回到起点,也永远不会移动到新的位置。
如果您希望精灵继续移动到新个随机位置,您需要在每次当前移动完成时创建一个新的随机位置。