我正在开发一款使用cocos2d并需要虚拟游戏杆的iPad游戏。我有一个使用SneakyJoystick的原型。如何在cocos2d环境之外为cocos2d游戏实现虚拟游戏杆?
但是,我意识到我的游戏设计需要我使用CCTransitions在CCScene的不同实例之间移动用户,以获得我想要的视觉效果。问题是,我不希望用户控件(如操纵杆)受到CCTransitions的影响 - 我希望它们保持在屏幕上(在屏幕的不同部分,而不是由CCScene占用的部分)。
我意识到要做到这一点的唯一方法是让整个cocos2d环境保持在占用面积小于整个屏幕的EAGLView环境中,这使得我可以将所有用户控件保留在屏幕上的其他地方,它们不受场景转换。
问题是,这意味着SneakyJoystick可能不再是一个选项,因为它是一个CCNode因此可能只会在cocos2d场景图中运行。
我很好奇,如果任何人有这种情况的替代解决方案:一种在cocos2d环境之外实现虚拟游戏杆的方式,但它可以以某种方式流畅地与cocos2d场景进行通信。
如果我可以保留SneakyJoystick的功能或非常类似的功能,通过从此非cocos2d类中敲入cocos2d的预定更新,或以某种方式将用户输入信息从操纵杆类推送到cocos2d 。
我现在正面临着这个挑战。您可以尝试交换图层而不是场景,然后您不必担心它。或者,您可以使用UIKit控件实现自己的游戏杆。就类之间的信息共享而言,你可以使用'NSNotifications'和'defaultNotificationCenter'。只需将游标数据作为'userInfo'传递即可。 – Moshe 2011-05-29 07:26:11
从我所阅读的内容来看,似乎CCTransitions只能应用于整个CCScenes而不应用于单个CCLayers ......如果这不再是可能的话。 – todd412 2011-05-29 07:40:58
我不认为可以将转换应用于图层。但是,根据您的游戏,这可能不是必需的。 – Moshe 2011-05-29 07:52:49