不好意思,新手初学。
我现在需要在win32平台下用cocos2d-x开发,现在想实现一个游戏内暂停,就是点击暂停按钮之后屏幕暗下弹出暂停界面,后面的一切动作和操作失效。
之前的实现方法是使用CCDirector::sharedirector()->pause(); 但是如果通过点击按钮实现了这行代码的话,所有动作立即暂停,我的包括屏幕变暗的动作也就被停止了,而且不知道为什么,使用这个pause()之后游戏响应变得特别卡,以至于我的恢复游戏按钮在点击时也没有动画效果,但是确实可以执行resume()。
用pause()还有一个问题,就是屏幕上的按钮全部有效,但是如果我误操作点击了其他切换场景的按钮,那么程序就会停止响应一切输入,跟死机一样。如果通过改写CCLayer实现键盘输入的话,通过键盘依然可以使得游戏resume(),resume()之后刚才误操作导致的场景切换将被执行。
这样效果非常差。
现在的实现方法是通过调用所有对象的pauseSchedulerAndActions(),但问题在于游戏当中有很多随机对象,这么写有点繁琐。我希望调用包含所有对象的CCLayer的pauseSchedulerAndActions()对象时,发现并没法停止通过addChild()添加到其内的对象。
现在就想请教给位,有没有办法能够通过一条或者很少几条命令就可以实现游戏暂停,但是浮在游戏界面前面的暂停界面依然可以执行动画?