cocos2d-x-3.3-018-游戏摇杆joystick源码分享

这篇博客介绍了如何在cocos2d-x v3.3中实现游戏摇杆(joystick)功能。作者通过解耦和事件机制,详细阐述了实现思路,包括继承layer、监听touch事件、计算角度、发布自定义事件等步骤。提供了核心代码示例,并指导如何将joystick集成到项目中。同时,文章附带了实际效果截图和参考资料链接。
摘要由CSDN通过智能技术生成

查看原文或更新请移步到我的wiki: https://github.com/cheyiliu/All-in-One/wiki/cocos2d-x-3.3-018-joystick4cocos3.3



joystick

核心思想

  • 解耦,采用事件机制将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的核心代码

                
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值