通过touch事件控制玩家移动,四个边界都是rigidbody,玩家居然可以穿过body

  • Creator 版本:3.0

  • 目标平台: <web)–>

  • 重现方式:必现

  • 首个报错: <无报错NewProject_3.zip (1.8 MB) >

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

望哪位大佬帮忙看看,上有demo

还得加碰撞框才行吧?

有加碰撞框的

使用touch是直接设置了节点的位置吧,这样就等于绕过了物理引擎的自动计算位置,所以瞬间设置在边界外就会穿过边界

this.node.setPosition(new Vec3(cur_pos.x + pos.x,cur_pos.y + pos.y));

1赞

this.node.setPosition(new Vec3(cur_pos.x + pos.x,cur_pos.y + pos.y));
这句有问题,用刚体移动就没有问题

this.node.getComponent(cc.RigidBody).linearVelocity = xxx

没错,使用物理引擎应该使用刚体提供的接口来设置线速度,角速度,而不是直接设置位置,直接设置位置=绕过里物理引擎,物理引擎在计算当前位置后会帮你设置

已经弄好了,谢谢大佬,就是通过设置物体的线速度来解决的(不能主动设置物体的坐标)