一个弹珠类游戏,player是玩家弹珠,A是弹珠;
两个需要发生碰撞,并产生反弹效果;
最初使用的是物理碰撞,开启了重力,重力值为0,控制的是刚体速度,发现并不能很好的向角度进行移动;
目前使用的碰撞组件,使用的moveTO移动坐标,我想实现的效果并不是移动到这个目标,而是控制好角度后,朝这个角度按指定的速度移动;(发现使用碰撞组件后,碰撞效果还得自己来写动画…)
上之前自己写的代码:
this.beijing.on(cc.Node.EventType.TOUCH_END, this.playerx, this); // 离开屏幕时调用player函数 ;
playerx(event: cc.Event.EventTouch) { // 手指离开时 ,同 第35行代码作用一样 ;
let chumo = event.getLocation(); // 获取触摸手指X、Y坐标
let x = chumo.x - this.player.node.x + cc.Camera.main.node.position.x //获取两点之间X距离
let y = chumo.y - this.player.node.y + cc.Camera.main.node.position.y //获取两点之间Y距离
let zb = Math.atan2(chumo.x - this.player.node.x + cc.Camera.main.node.position.x, chumo.y - this.player.node.y + cc.Camera.main.node.position.y) //获取触摸手指到对象的弧度
let jiaodu = zb * 180 / Math.PI //弧度转化为角度
this.move = cc.moveTo(1, chumo.x + cc.Camera.main.node.position.x, chumo.y + cc.Camera.main.node.position.y) // 移动到目标坐标
this.player.node.runAction(this.move) // player 对象移动到move坐标;
}
该代码只能实现移动到某个点,而不能实现朝这个角度一直移动到边界的功能;
萌新小白,还请大佬指导!~ @lbeeboy