gpt4 book ai didi

swift - SpriteKit中如何控制节点的速度

转载 作者:搜寻专家 更新时间:2023-11-01 06:32:12 25 4
gpt4 key购买 nike

我有一堆对象 (SKNode) 从屏幕顶部开始,通过 SKAction.move(to:duration:)node.run(moveAction)。此外,我在屏幕中央有一个节点,它有自己的物理体,可以通过触摸输入左右拖动。我可以很好地检测到碰撞,但我想知道是否存在在中心节点与任何对象接触时“暂停”所有对象的范例。此外,我希望能够在其他对象“暂停”时移动中心节点,这样我就可以将它移开,然后让对象恢复它们的运动。我想我可能会遍历所有现有对象并设置它们的 isPaused 属性,但我不确定应用程序如何知道中心节点何时不再“碰撞”以便我可以切换该属性.

最佳答案

要暂停,您必须检测 didBegin() 中的联系,用应该暂停的节点填充一些数组,最后暂停节点。例如,实际暂停可以在 didSimulatePhysics() 中完成。暂停您可以使用的所有节点

 self.enumerateChildNodesWithName("aName") {
node, stop in
// do something with node or stop
}

或使用 children节点的属性并循环遍历它(例如循环遍历应该暂停的节点的容器)。

您还可以暂停某些操作:

if let action = square.actionForKey("aKey") {

action.speed = 0
}

并使用 action.speed = 1 取消暂停,或者使用 action.speed = 0.5 使其慢动作

为了减慢物理模拟,有一个名为 physicsWorld.speed 的属性(确定模拟运行的速率)。

关于swift - SpriteKit中如何控制节点的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45573029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com