一天以来一直在努力解决这个问题,我真的不知道发生了什么。
我有一个非常简单的设置:一个 SKNode(我们称之为基),它包含另一个 SKNode(子基)以及几个 SKShapeNode 对象。有时,我将 SKShapeNode 对象之一(使用 removeFromParent)从基础节点移动到子基础节点。然后我应用一个 SKAction,它将节点移动到某个任意位置。
除了,当 SKShapeNode 已被移除并添加到子基础对象时,该 SKAction 不起作用。如果我将它从底座中取出,然后放回底座中,SKActions 将再次起作用。
我完全被难住了。当节点添加到另一个节点时,是否有一些属性在节点上设置,当我删除它时没有正确重置......?我无法想象这是应该发生的事情。
任何想法都会非常受欢迎。
更新:
这是我可以使用的一些代码。该函数位于 SKNode 的子类中。该类添加了一堆 SKShapeNodes,它还有另一个名为 testNode 的 SKNode,所以,事不宜迟:
-(void) removeThenAdd
{
[someNode removeFromParent];
[self.testNode addChild:someNode];
SKAction* action = [SKAction moveTo:CGPointMake(200, 200) duration:1];
SKNode* thatSameNodeJustAdded = [self.testNode.children objectAtIndex:0];
[thatSameNodeJustAdded runAction:action];
}
另一个更新!
我刚刚发现,如果我在该节点位于 testNode 内时向该节点添加一个 SKAction,然后将其从 testNode 中删除并将其添加回其原始父级,则该操作将被激活。就像,我在这里错过了什么?这一定是我没有正确使用的某种设计行为。