如何在sprite kit swift中移动节点

时间:2014-12-05 21:20:24

标签: swift sprite-kit

我一直想知道如何在很长一段时间内使用Sprite Kit swift,我的问题是,当我去现场时,不知道如何让SKActions如此基本地移动节点把它放在他们看到一个节点移动(命名节点精灵),我不明白它是如何工作的,有人可以告诉我一个如何做到这一点的解释例子,谢谢你提前!

3 个答案:

答案 0 :(得分:4)

要在Sprite-Kit中移动Sprite,您可以使用SKActions。

例如:

let action = SKAction.moveByX(3, y: 2, duration: 10)
  • 这将使精灵沿x轴移动3个单位,沿y轴移动2个单位,持续10秒。

如果你想让你的精灵移动到特定的地方,你可以这样做:

let action2 = SKAction.moveTo(location: CGPoint, duration: NSTimeInterval)

希望这有帮助!

答案 1 :(得分:0)

您可以在Swift 3.0中为节点或Sprite提供操作...首先,我们将更改节点或Sprite的大小。

let nodeSize = SKAction.scale(to: 0.5, duration: 2)

在两秒钟内,这会将对象的大小从任何大小更改为该大小的一半。接下来,要将Node或Sprite移动到其他位置,请使用...

let nodeSet = SKAction.moveBy(x: -3.0, y: 2.0, duration: 2)

在两秒钟内,对象将向左移动3个单位,向上移动2个。

如果要将这些操作分配给特定节点,可以先创建节点var parentNode = SKShapeNode(),然后告诉他们运行该操作。

parentNode.run(nodeSize)
parentNode.run(nodeSet)

希望这会有所帮助。

答案 2 :(得分:0)

据我所知,你有一个带有某个节点的场景(例如name =“myNode”)。

首先,您需要访问此节点:

override func didMoveToView(view: SKView) {
  let myNode = childNodeWithName(homeButtonName)!
  ...
}

现在你有了对节点的引用。

下一步是添加移动此节点的操作。 例如,让我们在3秒内将此节点水平移动+20并垂直移动-30:

let dX = 20
let dY = -30
let moveAction = SKAction.moveByX(CGFloat(dX), y: CGFloat(dY), duration: 3.0)
myNode.runAction(moveAction)

您可以更改许多节点的属性,而不仅仅是位置,例如大小,阿尔法,旋转等。