0

这是问题所在:我正在使用 cocos2D 和 CCLayers,并且我使用 UIView 来捕捉 UIScrollMenu 的手势识别器的动作。在我的图层上,有动画精灵可以永远运行动画;当我用手指拖动 scrollMenu 并停止按住手指时,背景中的 CCLayer 不再更新,精灵也不会移动。一旦我再次移动手指,精灵就会更新。问题不应该来自精灵,因为当我停止并再次移动时,精灵不会播放下一帧,而是继续正常移动时应该显示的帧。我认为仍然计算帧,但图层不再更新其视图。

有人会想办法避免这种情况吗?

我没有做任何事情来更新 CCSprites,我只是在它们上启动一个 CCRepeatForever 动作,然后让它们的父 CCLayer 关心它们。我试图安排这个 CCLayer,但是当我用手指拖动一个项目时,不再调用更新函数......

`CCAction *hitAction = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:hitAnim restoreOriginalFrame:NO]];

[精灵 runAction:hitAction];`

当我再次移动手指时调用的函数(显然允许 CCLayer 更新)是- (void)scrollViewDidScroll:(UIScrollView *)scrollView

4

2 回答 2

0

好吧,你没有发布任何代码......但基于我过去曾经遇到的一个问题,这是我最好的猜测。如果您在 CCTouchesMoved 内更新您的动画(或方法调用来执行动画),请停止这样做。只需在 CCTouchesMoved 中更新您可能需要的任何信息,然后在计时器方法中更新您的动画(例如,如果您使用 [self scheduleUpdate].

于 2011-06-20T09:53:20.733 回答
0

我最终在 cocos2D 论坛上发布了这个问题,这是答案: http: //www.cocos2d-iphone.org/forum/topic/17845

于 2011-06-21T13:44:58.003 回答