我们在游戏开发中经常会使用游戏摇杆完成玩家与精灵的互动,本篇教程将带你详细解读Cocos2d-x游戏摇杆的制作流程。
核心思想
解耦,采用事件机制将joystick的事件和目标对象之间的关联进行解耦
实现思路
1.继承自layer并注册监听touch event
2.若touch事件在joystick的中心点触发的,则继续下面的逻辑
3.更新joystick中心点的位置
4.计算touch点joystick中心点的角度(角度范围,第一象限[0, 90], 第二象限[90, 180], 第三象限[-180, -90], 第四象限[-90, 0])
5.发布自定义的joystick event,目前事件仅包含上面计算的角度值,可根据需要进行增改
6.注册joystick event的事件监听器,并在回调函数里实现你的业务逻辑
7.joystick event中的userdata的内存释放,交给auto-release-pool了, 具体见JoystickEvent的实现
核心代码
JoystickEvent主要是规范内存管理,严格按照cocos的'风俗'进行: 两段构造方式create+Ref+pool,使create出的对象像个栈上的局部变量。(mainLoop下次清理pool时自动删除)。
Joystick的核心代码
集成到项目
我以proj.linx为例
拷贝相关cpp .h到工程并在CMakeLists.txt中增加cpp
添加joystick到场景
注册监听joystick event
下一篇:3D游戏引擎设计与实现
¥98.00
¥98.00
¥108.00
¥698.00