runBlock 没有按顺序工作?
runBlock not working in sequence?
我正在尝试创建一个基本的生成序列 - 必须创建方块,moveDownLeft
,然后 removeLeft
。当之前使用 self.addChild(block1)
添加块时,moveDownLeft
和 removeLeft
可以自己正常工作,但是我需要在序列中包含 self.addchild
。
我能看到的唯一方法是使用 runBlock
,我在使用它时遇到错误时查看了这个问题:Swift: SKAction.runBlock -> Missing argument for parameter 'completion' in call BUT WHY?
所以现在我只剩下这个了:
block1.runAction(SKAction.sequence([SKAction.runBlock({ self.addChild(self.block1) }), moveDownLeft, removeLeft]))
序列中的任何内容都不起作用,因为该块不是首先创建的。为什么会这样?
您的代码片段太短,但它看起来像是一个典型的先有鸡还是先有蛋的问题。
- 节点在被添加为子节点并因此成为场景图的一部分后只能运行 动作
- 你的节点应该运行一个最终会把自己添加到场景图中的动作,但它还不在场景图中,所以它不会运行那个动作
首先将节点添加为子节点,然后 运行 操作。如果您需要节点在一段时间内处于非活动状态,只需将其可见 属性 设置为 NO 持续时间。您可能还需要更改其他属性,即推迟物理体的创建。
我正在尝试创建一个基本的生成序列 - 必须创建方块,moveDownLeft
,然后 removeLeft
。当之前使用 self.addChild(block1)
添加块时,moveDownLeft
和 removeLeft
可以自己正常工作,但是我需要在序列中包含 self.addchild
。
我能看到的唯一方法是使用 runBlock
,我在使用它时遇到错误时查看了这个问题:Swift: SKAction.runBlock -> Missing argument for parameter 'completion' in call BUT WHY?
所以现在我只剩下这个了:
block1.runAction(SKAction.sequence([SKAction.runBlock({ self.addChild(self.block1) }), moveDownLeft, removeLeft]))
序列中的任何内容都不起作用,因为该块不是首先创建的。为什么会这样?
您的代码片段太短,但它看起来像是一个典型的先有鸡还是先有蛋的问题。
- 节点在被添加为子节点并因此成为场景图的一部分后只能运行 动作
- 你的节点应该运行一个最终会把自己添加到场景图中的动作,但它还不在场景图中,所以它不会运行那个动作
首先将节点添加为子节点,然后 运行 操作。如果您需要节点在一段时间内处于非活动状态,只需将其可见 属性 设置为 NO 持续时间。您可能还需要更改其他属性,即推迟物理体的创建。