用遥感控制玩家,玩家碰到墙壁时无法穿过,并且只能沿着墙壁移动
例★
横向纵向速度
let speedX = 1;
let speedY = 1;
是否碰撞(this.x + speedX, this.y){
speedX = 0;
}
是否碰撞(this.x, this.y + speedY){
speedY = 0;
}
this.x += speedX;
this.y += speedY;
这个方法就是,设置横向纵向移动速度,在移动之前先将自己的坐标加上移动向量,判断移动后的坐标是否碰撞,若碰撞了那么这个方向的速度为0,这个方向就不移动了
我现在的想法和这个有点类似,但由于我这个不是单纯的墙壁,是一个个栅栏拼起来的围墙,所以不一定是矩形。我现在的想法是碰撞两点之间连线做x轴,法线做y轴,然后把玩家遥感移动的方向按照这个x、y轴做拆分,哪一边碰到了墙壁就把遥感方向哪一边的向量置为0。不过实现起来总有点问题,目前还在找有没有别的办法
矩形,圆形,多边形这些都无所谓,碰撞体这块你可以直接用ccc自带的
是的,我就是用自带的,我的意思是很多个碰撞体拼起来的围墙
与很多个碰撞体没有关系,无论是什么样的碰撞,这个方法是预测下一帧的坐标碰撞,那个轴的速度为0
