我正在开发一款使用cocos2d并需要虚拟操纵杆的iPad游戏。我有一个原型并使用SneakyJoystick运行。
然而,我意识到我的游戏设计要求我使用CCTransitions在不同的CCScene实例之间移动用户,以获得我想要的视觉效果。问题是,我不希望用户控件(如操纵杆)受CCTransitions的影响 - 我希望它们保留在屏幕上(在屏幕的不同部分,而不是CCScene占用的部分。)< / p>
我意识到实现这一目标的唯一方法是将整个cocos2d环境保留在占用小于整个屏幕的区域的EAGLView中,这样我就可以将所有用户控件保留在屏幕上的其他位置,不受其影响场景转换。
问题是,这意味着SneakyJoystick可能不再是一个选项,因为它是一个CCNode因此可能只在cocos2d场景图中运行。
我很好奇是否有人有这种情况的替代解决方案:在cocos2d环境之外实现虚拟操纵杆的方法,但可以某种方式与cocos2d场景流畅地沟通。
如果我能保留SneakyJoystick的功能或非常类似的东西,通过从这个非cocos2d类中获取cocos2d的预定更新,或以某种方式将用户输入信息从操纵杆类推送到cocos2d,那将是很棒的。
答案 0 :(得分:1)
可能你可以创建一个UIView并将它放在opengl视图上。要访问openglView,请使用[CCDirector sharedDirector].openGLView
。使用UIView创建操纵杆。因此它将始终显示,并且不受CCScene转换的影响。