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];