我有CCNode *parentNode
,有CCNode *childNode1
和CCNode *childNode2
。我正在尝试使用CCMoveTo
操作移动parentNode,但是将childNode2
保留为相同的位置。
以下代码
[parentNode runAction:[CCMoveTo actionWithDuration:0.5f position:ccp(x, y)]];
[childNode2 runAction:[CCMoveTo actionWithDuration:0.5f position:ccp(-x, -y]];
无法帮助我实现目标。
甚至可以解决我的问题吗?
答案 0 :(得分:1)
当然有可能。您的问题是父母和孩子的坐标系不同,因此x
和y
变量对他们来说并不相同。我确信父母移动到正确的位置,而孩子没有。因此,您需要为孩子计算正确的x
和y
值。
或者您可以使用CCMoveBy
。它看起来像这样:
float x_diff = x - parentNode.position.x;
float y_diff = y - parentNode.position.y;
[parentNode runAction:[CCMoveTo actionWithDuration:0.5f position:ccp(x, y)]];
[childNode2 runAction:[CCMoveBy actionWithDuration:0.5f position:ccp(-x_diff, -y_diff)]];