无论如何,我可以独立于其父节点为子节点设置动画吗?
例如
//create parent node
SKNode* parent = [SKSpriteNode spriteNodeWithColor:[UIColor whiteColor] size:CGSizeMake(100,100)];
[myScene addChild:parent];
//create child node (add to parent)
SKNode* child = [SKSpriteNode spriteNodeWithColor:[UIColor whiteColor] size:CGSizeMake(50,50)];
child.position = CGPointMake(0,0);
[parent addChild:child];
//attempt to run action on child
[child runAction:[SKAction moveByX:25 y:25 duration:1.0f]];
什么都没发生。但是,如果我在父级上运行相同的操作,它将按预期工作。
如何在独立于父节点的子节点上运行操作?这必须是可能的(e.g. 翅膀拍打鸟,轮胎打开汽车,起落架部署在飞机上,etc.)。
如果这是 sprite kit 的限制,你能推荐一个没有这些限制的游戏引擎框架吗?
我能够重新定位节点的唯一方法是将其直接添加到场景中。子节点无法重新定位。这是该框架中的一个巨大限制。非常令人失望。
更新:
我发现如果我删除物理体(child.physicsBody = nil)我可以改变位置(child.position = newPosition)但我不能运行改变位置的动作([child runAction:[3])。
谢谢!!
1 回答
解:
如果我在将其添加到父节点之前对子节点运行任何操作,我随后可以运行更改子节点位置的操作。
例如:
我不知道为什么会这样,但确实如此。如果我没有在子节点上运行操作,然后将其添加到父后续操作,尝试移动节点不起作用。