我一直想知道如何在很长一段时间内使用Sprite Kit swift,我的问题是,当我去现场时,不知道如何让SKActions如此基本地移动节点把它放在他们看到一个节点移动(命名节点精灵),我不明白它是如何工作的,有人可以告诉我一个如何做到这一点的解释例子,谢谢你提前!
答案 0 :(得分:4)
要在Sprite-Kit中移动Sprite,您可以使用SKActions。
例如:
let action = SKAction.moveByX(3, y: 2, duration: 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)
您可以更改许多节点的属性,而不仅仅是位置,例如大小,阿尔法,旋转等。