Cocos2d iphone cocos2d:交换精灵

Cocos2d iphone cocos2d:交换精灵,cocos2d-iphone,box2d,Cocos2d Iphone,Box2d,我使用以下方法仅交换2个精灵的位置 CCSprite *sprite1 = (CCSprite*)[self getChildByTag:tagOfFirstSprite]; CCSprite *sprite2 = (CCSprite*)[self getChildByTag:tagOfSecondSprite]; CGPoint SpritePosition1 = [sprite1 position]; CGPoint SpritePosition2 = [s

我使用以下方法仅交换2个精灵的位置

CCSprite *sprite1 = (CCSprite*)[self getChildByTag:tagOfFirstSprite]; 
    CCSprite *sprite2 = (CCSprite*)[self getChildByTag:tagOfSecondSprite]; 

    CGPoint SpritePosition1 = [sprite1 position];  
    CGPoint SpritePosition2 = [sprite2 position];  



    [sprite1 runAction:[CCMoveTo actionWithDuration:1.0 position:ccp(SpritePosition2.x, SpritePosition2.y)]];
    [sprite2 runAction:[CCMoveTo actionWithDuration:1.0 position:ccp(SpritePosition1.x, SpritePosition1.y)]];

这些是box2d body。但它不起作用……有什么想法吗?

我假设您使用的是box2d示例模板,它实现了调度程序连续调用的“tick()”函数。此函数调用world->step()函数,并更新box2D实体的位置,然后根据box2D实体的新位置更新精灵的位置。 当您仅调用runAction时,它不会影响Box2D实体的位置,因此每次调用tick()函数时,精灵的位置将根据Box2D实体的位置进行设置。 现在,即使您的runAction正在移动精灵,当调用tick()函数时,它也会在每秒几次后重置。
我希望你能理解。

请阅读这篇文章,以便更好地理解这个问题,是的……虽然我已经发现了……但非常感谢你的精彩描述……我想你已经说清楚了。。。