繁体   English   中英

如何在sprite kit swift中移动节点

[英]How do I make a node move in sprite kit swift

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

要在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)

希望这有帮助!

您可以在Swift 3.0中为Node或Sprite提供操作......首先,我们将更改Node或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)

希望这会有所帮助。

据我所知,你有一个节点的场景(例如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)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM