我已经集成了 Cocos2D 和 UIKit。我有视图之间的导航,第一次打开 cocos 视图时,它可以工作。但是当我返回主菜单时,日志控制台会显示:
cocos2d: animation stopped
之后,如果我再次尝试进入 cocos2D 视图,动画不会开始。
我能做些什么来解决这个问题?
我按照本教程进行操作,但没有帮助 http://www.raywenderlich.com/4817/how-to-integrate-cocos2d-and-uikit
我已经集成了 Cocos2D 和 UIKit。我有视图之间的导航,第一次打开 cocos 视图时,它可以工作。但是当我返回主菜单时,日志控制台会显示:
cocos2d: animation stopped
之后,如果我再次尝试进入 cocos2D 视图,动画不会开始。
我能做些什么来解决这个问题?
我按照本教程进行操作,但没有帮助 http://www.raywenderlich.com/4817/how-to-integrate-cocos2d-and-uikit
这方面一直存在问题。在另一个 SO Question 中有类似的讨论。
每当我想包含 UIKit 元素时,我倾向于反其道而行之。
使用 CCUIViewWrapper 代码:https ://github.com/splhack/CCUIViewWrapper
这可能会根据您使用的 cocos2d 的版本而有所不同,但stopAnimation
应该被调用CCDirectorIOS.m:viewDidDisappear
并且startAnimation
应该被调用viewWillAppear
。所以我会在那里设置断点以确保它被调用。如果你-(void) mainLoop:(id)sender
正在运行。
-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self startAnimation];
}
-(void) viewDidDisappear:(BOOL)animated
{
[self stopAnimation];
[super viewDidDisappear:animated];
}
如果您想进一步调查 mainLoop 调用 drawScene,如果不是isPaused
,则 CCScheduler 将更新运行所有动画的 CCActionManager。
希望这可以帮助。