cocos2d: обмен спрайт - PullRequest
       5

cocos2d: обмен спрайт

0 голосов
/ 03 октября 2010

Я использую следующее, чтобы поменять местами только спрайт 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. Но это не работает ....... любая идея ??

1 Ответ

2 голосов
/ 07 марта 2011

Я предполагаю, что вы используете образец шаблона Box2D, который реализует функцию "tick ()", которая постоянно вызывается планировщиком.Эта функция вызывает функцию world-> step () и обновляет положение тел box2D, а затем обновляет положение своих спрайтов в соответствии с новым положением тел box2D.Когда вы просто вызываете runAction, это не влияет на положение ваших тел Box2D, поэтому каждый раз, когда вызывается функция tick (), положение ваших спрайтов будет устанавливаться в соответствии с положением тел box2D.Теперь, даже если ваш runAction перемещает ваши спрайты, он сбрасывается через пару раз каждую секунду, когда вызывается функция tick ().Я надеюсь, вы понимаете.

...