Ios 使用SKAction更改SKShapeNode的位置

Ios 使用SKAction更改SKShapeNode的位置,ios,swift,sprite-kit,position,skaction,Ios,Swift,Sprite Kit,Position,Skaction,我有一个游戏,其中我需要一个SKAction,将SKShapeNode的位置向上移动64个单位。这是我需要向上移动的对象的代码 var rect = SKShapeNode(rectOfSize(CGSizeMake(200,200)) rect.position = CGPointMake(0,0) 我想让它每隔几秒钟,64个单位加到rect的y值上。因此: rect.position = CGPointMake(0,64) 然后 rect.position = CGPointMake(0

我有一个游戏,其中我需要一个SKAction,将SKShapeNode的位置向上移动64个单位。这是我需要向上移动的对象的代码

var rect = SKShapeNode(rectOfSize(CGSizeMake(200,200))
rect.position = CGPointMake(0,0)
我想让它每隔几秒钟,64个单位加到rect的y值上。因此:

rect.position = CGPointMake(0,64)
然后

rect.position = CGPointMake(0,128)

任何帮助都将不胜感激。

如果您想在1秒的时间内顺利设置
rect
动画,您可以尝试以下方法:

let moveRect = SKAction.moveToY(rect.position.y+64, duration: 1)
moveRect.timingMode = SKActionTimingMode.EaseInEaseOut // This line is optional
rect.runAction(moveRect)
添加第二行是为了确保轻松进出运动,但这不是必需的

这就是你要找的吗

let move = SKAction.moveTo(y: rect.position.y+64, duration: 1.0)
move.timingMode = SKActionTimingMode.easeInEaseOut
rect.run(move)
这是我代码的一部分。我不能多次使用SKAction。例如,如果单词=“ULD”,则精灵应沿路径向上(U),然后向左(L)和向下(D)移动。每次用户通过手势创建新的轨迹时,记录手势的终止都是通过触摸结束的。他们每次都必须表演。 但在这个例子中,我的精灵在模拟器中的位置变为向下

while word != ""{

if word[word.startIndex] == "R" {

let moveSpriteToRight = SKAction.move(to: CGPoint(x: sprite.position.x+128, y: sprite.position.y), duration: 1)

sprite.run(moveSpriteToRight)

} else if word == "D" {

  let moveSpriteToDown = SKAction.move(to: CGPoint(x: sprite.position.x, y: sprite.position.y-128), duration: 1)

sprite.run(moveSpriteToDown) 

} else if word == "L" {

let moveSpriteToLeft = SKAction.move(to: CGPoint(x: sprite.position.x-128, y: sprite.position.y), duration: 1)

sprite.run(moveSpriteToLeft) 

} else if word == "U" {

let moveSpriteToUp = SKAction.move(to: CGPoint(x: sprite.position.x,
 y: sprite.position.y+128), duration: 1)

sprite.run(moveSpriteToUp) 
}

word.remove(at: word.startIndex)}