CC2ction在box2d世界

时间:2012-11-02 11:49:11

标签: cocos2d-iphone box2d ccaction

我是cocos2d和box2d的新手,我已经在这个问题上苦苦挣扎了两天:我有一个场景,有很多精灵掉下来(附着尸体)。我有一个BackgroundLayer,我将我的背景图像添加到场景中(这不包含在物理模拟中)。在我的backgroundLayer中,我正在尝试对精灵执行操作: (它在第一个位置闪烁并直接跳到结束位置)

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

但我的精灵根本没有回应这个动作!我的精灵没有附加任何b2体,似乎它响应物理世界的tick:方法(在我的主场景中)。如何对没有连接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 个答案:

答案 0 :(得分:0)

我猜精灵的源位置和目标位置是一样的。所以行动没有区别。

试试这个..

sprite.position = ccp(0,0);

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

[sprite runAction:flyBubble];

答案 1 :(得分:0)

我做了一个小错误,花了我很多次。它出现在这行代码中

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

CCEaseInOut不起作用我不知道为什么!!当我使用CCEaseExponentialInOut它完美的工作。

非常感谢!