cocoscreator 虚拟摇杆控制 目标移动(A版)

其实 本人挺喜欢moba游戏的 比如dota 以前下班回家都会打两把,但是有的时候想玩了 却没电脑,于是 就玩了几把 王者荣耀 就看见他那个控制人物行走的 摇杆挺有意思 于是 想自己实现类似的功能->

效果图:
cocoscreator 虚拟摇杆控制 目标移动(A版)

总体思路:摇杆在规定范围内 活动,受控制目标 通过监听 控制点(摇杆)的方位,然后调整自身的角度和位置。
首先要考虑几个问题
1,控制点的活动区域
2,受控制较色的角度要跟控制点的角度一致
3,受控角色如何监听控制器角度变化和位置变化
4,控制较色速度
实操:
1,控制点的活动区域
在移动事件中,只要计算 控制点与 控制底图的 半径差(限制范围半径) 与 控制点的 向量长度 作比较就可以, 如果 向量长度大于 半径差 就进行位置限制处理。保证控制点在限制区域内。

2,受控制较色的角度要跟控制点的角度一致
计算控制点的 方位 通过方位,控制目标监听 控制点的方位 ,然后 转化为自身的角度 就可以了

3,受控角色如何监听控制器角度变化和位置变化
这个问题可以两面考虑
1)用计时器实现
即用sechedule或者js自带的计时器 每次调用监听函数
2)运用update实现
这个方法比较懒 只要在受控节点的update中监听即可
本文用第一种,原因是 极简

4,控制较色速度
角色的速度根据不同的监听 进行设置,期望是可调节的 一般项目中不都是 要灵活么。

主要代码:

cocoscreator 虚拟摇杆控制 目标移动(A版)
cocoscreator 虚拟摇杆控制 目标移动(A版)

长按下方二维码,关注公众号 发送 yaogan 即可获得完整代码及资源

cocoscreator 虚拟摇杆控制 目标移动(A版)