creator游戏《Protecive goddess》(二)--- 遥感控制角色移动、技能移动

我是将遥感做成了一个prefab,这样角色移动还有技能的控制就可以通用了。

效果图如下,姑且叫它【御剑飞行】吧
在这里插入图片描述

思路:
① 遥感操作时,求得AB向量作为物体移动的方向,再求得AB与x轴的夹角angle作为物体的旋转角度

// 遥感的方向向量dir == 归一化向量AB
const dir = cc.v2(posX, posY).sub(this.m_ring.getPosition()).normalize();

// 根据向量求夹角弧度,2种方式
let radian = Math.atan2(dir.y, dir.x);
let radian =  cc.v2(1, 0).signAngle(cc.v2(dir.x, dir.y))  

// 弧度转角度 弧度 = Math.PI/180*angle
let angle = cc.misc.radiansToDegrees(radian);

② 物体通过定时器移动,每帧可以拿到自身的移动距离distance,再结合遥感所控制的方向便可得到下一帧的坐标。角度与遥感一致即可。

//定时器每帧移动距离
let distance = speed*dt;
//根据遥感的偏移坐标
let offPos = cc.v2(dir.x *distance, dir.y*distance)
//物体新坐标就等于旧坐标oldPos加偏移offPos
let newPos = cc.vec2.add(oldPos, offPos)

PS:案例代码中是为了方便直接在joystick中调用player的方法来控制player的移动。
这种设计方式将两者耦合在了一起,不可取。建议在实际项目中最好通过事件派发的方式来达到两者的结合使用。


资源下载地址:Joystick.rar

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值