Как реализовать виртуальный джойстик для игры cocos2d вне среды cocos2d? - PullRequest
3 голосов
/ 29 мая 2011

Я занимаюсь разработкой игры для iPad, которая использует cocos2d и требует виртуального джойстика.У меня есть прототип, запущенный и работающий с использованием SneakyJoystick.

Однако я понял, что мой игровой дизайн требует от меня использования CCTransitions для перемещения пользователя между различными экземплярами CCScene, чтобы получить желаемый визуальный эффект.Проблема в том, что я не хочу, чтобы CCTransitions влиял на пользовательские элементы управления (например, на джойстик) - я хочу, чтобы они оставались на экране (в другой части экрана, чем часть, занимаемая CCScene.)

Я понял, что единственный способ сделать это - сохранить всю среду cocos2d в EAGLView, который занимает область меньше, чем весь экран, что позволяет мне сохранять все пользовательские элементы управления в другом месте экрана, где они находятся.не зависит от переходов сцены.

Проблема в том, что SneakyJoystick, вероятно, больше не является опцией, так как это CCNode, который, вероятно, будет работать только в графе сцены cocos2d.

IЛюбопытно, есть ли у кого-нибудь альтернативное решение для этой ситуации: способ реализации виртуального джойстика вне среды cocos2d, но который может каким-то образом плавно взаимодействовать со сценой cocos2d.

Было бы замечательно, если бы я мог сохранить функциональность SneakyJoystick или чего-то очень похожего, либо нажав на запланированные обновления cocos2d из этого не-cocos2d класса, либо каким-либо другим способом вытолкнув информацию пользовательского ввода из класса джойстикак cocos2d.

1 Ответ

1 голос
/ 29 мая 2011

Возможно, вы можете создать UIView и поместить его поверх представления opengl. Для доступа к openglView используйте [CCDirector sharedDirector].openGLView. Создайте свой джойстик с помощью UIView. Таким образом, он всегда будет показан и не будет подвержен переходам CCScene.

...