CCAction в мире box2d

Я новичок в cocos2d и box2d, и я два дня боролся с этой проблемой: у меня есть сцена с множеством спрайтов, с прикрепленными к ним телами. и у меня есть BackgroundLayer, из которого я добавляю фоновое изображение в сцену (которая не задействована в симуляции физики). В моем backgroundLayer я пытаюсь выполнить действие над спрайтом: (он мигает в первой позиции и прыгает прямо в конечную позицию)

id flyBubble = [CCEaseInOut actionWithAction:[CCMoveTo actionWithDuration:0.7 position:randomEndPosition]];

но мой спрайт вообще не отвечает на это действие!! к моему спрайту не привязан ни один b2body, и похоже, что он отвечает метке: метод из мира физики (который находится в моей главной сцене). Как я могу выполнить действие со спрайтом, к которому не прикреплен b2body. любая помощь будет оценена!!! Спасибо

вот весь код:

    CCSprite *bubble = [CCSprite spriteWithFile:@"bubble.png"];
[self addChild:bubble];
CGPoint startPosition = ccp(100, 100);
bubble.position = startPosition;    
CGPoint endPosition = ccp(400, 400);

id flyBubble = [CCEaseInOut actionWithAction:[CCMoveTo actionWithDuration:0.7 position:randomEndPosition]];
id remove = [CCCallBlockN actionWithBlock:^(CCNode *node) {        
    [self removeFruit:(CCSprite *)node];        
}];

[bubble runAction:[CCSequence actions:flyBubble, remove, nil]];

2 ответа

Решение

Я сделал небольшую ошибку, которая стоит мне много раз. это было в этой строке кода

id flyBubble = [CCEaseInOut actionWithAction:[CCMoveTo actionWithDuration:0.7 position:randomEndPosition]];

CCEaseInOut не работает, я не знаю почему!! когда я использовал CCEaseExponentialInOut, он работал отлично.

Спасибо, в любом случае!

Я думаю, источник и место назначения спрайта одинаковы. Так что нет разницы в действии.

попробуй вот так..

sprite.position = ccp(0,0);

id flyBubble = [CCMoveTo actionWithDuration:0.7 position:randomEndPosition];

[sprite runAction:flyBubble];
Другие вопросы по тегам