Cocos Creator 详解虚拟摇杆

文章转自:https://www.dadadatou.com/archives/strt2.html

我们需要实现的目标是一个控制人物移动的虚拟摇杆
第一步:我们需要获取我们摇杆的移动位置,再将获取到坐标转换成节点坐标。所以这里我们要开启事件监听如图:
在这里插入图片描述
通过事件监听我们就能获取到我们想要的值,如图:
在这里插入图片描述
第二步:也是最关键关键的一步,我们需要做到移动stick,不能超出stckBg,并且将值转换后传递给需要控制的人物,因此我们需要定义移动的最大半径以及他的方向
在这里插入图片描述
通过图片我们知道,我们实际移动的坐标是(x2,y2),但是我们规定了最多不能超超出半径(x1,y1),通过图片我们明显的知道圈内的三角形和圈外的三角形是相似的,由此我们就能求出(x1,y1)。同时我们将(x2,y2)的坐标进行归一,具体代码如图所示
在这里插入图片描述
第三步:将我们计算出来了值传递给需要控制的人物。至于为什么angle需要减去90度可以去看我的上一篇文章

最后附上效果图和源码图
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值