我使用下面的代码来交换两个精灵的位置。
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.But it‘t work.......any idea??
发布于 2011-03-07 19:54:37
我假设您使用的是Box2D示例模板,它实现了调度器不断调用的"tick()“函数。此函数调用world->step()函数,并更新box2D实体的位置,然后根据box2D实体的新位置更新子实体的位置。当您只是调用runAction时,它不会影响Box2D your的位置,因此每次调用box2D ()函数时,都会根据sprites的位置设置sprites的位置。现在,即使你的runAction正在移动你的精灵,当调用tick()函数时,它每秒被重置几次。我希望你能理解。
https://stackoverflow.com/questions/3849186
复制相似问题