我是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]];
答案 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它完美的工作。
非常感谢!