其实 本人挺喜欢moba游戏的 比如dota 以前下班回家都会打两把,但是有的时候想玩了 却没电脑,于是 就玩了几把 王者荣耀 就看见他那个控制人物行走的 摇杆挺有意思 于是 想自己实现类似的功能->
效果图:
总体思路:摇杆在规定范围内 活动,受控制目标 通过监听 控制点(摇杆)的方位,然后调整自身的角度和位置。
首先要考虑几个问题
1,控制点的活动区域
2,受控制较色的角度要跟控制点的角度一致
3,受控角色如何监听控制器角度变化和位置变化
4,控制较色速度
实操:
1,控制点的活动区域
在移动事件中,只要计算 控制点与 控制底图的 半径差(限制范围半径) 与 控制点的 向量长度 作比较就可以, 如果 向量长度大于 半径差 就进行位置限制处理。保证控制点在限制区域内。
2,受控制较色的角度要跟控制点的角度一致
计算控制点的 方位 通过方位,控制目标监听 控制点的方位 ,然后 转化为自身的角度 就可以了
3,受控角色如何监听控制器角度变化和位置变化
这个问题可以两面考虑
1)用计时器实现
即用sechedule或者js自带的计时器 每次调用监听函数
2)运用update实现
这个方法比较懒 只要在受控节点的update中监听即可
本文用第一种,原因是 极简
4,控制角色速度
角色的速度根据不同的监听 进行设置,期望是可调节的
主要代码:
长按下方二维码,关注公众号 发送 yaogan 即可获得完整代码及资源