过去几天我一直在做一个自上而下的javascript游戏,我正在实施碰撞检测系统。
当一个物体击中另一个物体时,我已经成功地理解了,但不是哪个轴(因此在移动过程中,我可以阻挡它而不是其他物体)。
例如。此代码非常适合检测玩家何时触摸另一个对象,但通过检查此代码可阻止所有移动。
if(p1x >= topX && p1x <= bottomX
&& p1y >= topY && p1y <= bottomY)
让我们说你同时坚持正确。执行此方法并阻止移动意味着阻止其中一个完全有效的操作。
例如,如果我同时向左和向上按住,则所有动作都会被阻止。除非我只按下或只按右键,否则我会被卡住。
我想要实现的功能是它只会阻止向左移动(在x轴上),同时允许y轴移动继续。
我在考虑在每次按键检测中独立检查每个轴,但这会牺牲优化吗? (这不只是做一个if语句 - 它也找到了瓦片并在那里找到了边界)。