0

我是 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]];
4

2 回答 2

0

我猜精灵的源和目标位置是相同的。所以动作上没有区别。

试试这样。。

sprite.position = ccp(0,0);

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

[sprite runAction:flyBubble];
于 2012-11-02T13:52:35.487 回答
0

我犯了一个小错误,让我付出了很多次。它在这行代码中

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

CCEaseInOut 不起作用我不知道为什么!当我使用 CCEaseExponentialInOut 时,它工作得很好。

不管怎么说,还是要谢谢你!

于 2012-11-02T16:22:01.167 回答