Javascript 这是新的碰撞系统还是有故障的碰撞系统?
我正在做一个自上而下的2D游戏,里面有方块碰撞。从本质上讲,这段代码只是在剩下的所有像素上进行迭代,以检查是否存在“冲突”。如果没有移动框。我没有看到其他人这样做,所以我想知道。此系统可能有什么故障Javascript 这是新的碰撞系统还是有故障的碰撞系统?,javascript,collision-detection,collision,Javascript,Collision Detection,Collision,我正在做一个自上而下的2D游戏,里面有方块碰撞。从本质上讲,这段代码只是在剩下的所有像素上进行迭代,以检查是否存在“冲突”。如果没有移动框。我没有看到其他人这样做,所以我想知道。此系统可能有什么故障 if (keyLeft) { var canMove = true; for(var x = 0; x < 64; x++){ var tile = this._world.getTile(new Vector2(this._position.x - 2, this._posi
if (keyLeft)
{
var canMove = true;
for(var x = 0; x < 64; x++){
var tile = this._world.getTile(new Vector2(this._position.x - 2, this._position.y + x));
if(tile != undefined){
if(tile.material.isCollidable == true){
canMove = false;
this._hsp = 0;
}
}
}
if (canMove == true){
this._position.x -= 2;
}
}
if(左键)
{
var canMove=true;
对于(变量x=0;x<64;x++){
var tile=this.\u world.getTile(新向量2(this.\u position.x-2,this.\u position.y+x));
如果(平铺!=未定义){
if(tile.material.isCollidable==true){
canMove=false;
这个._hsp=0;
}
}
}
if(canMove==true){
这是._位置x-=2;
}
}
它们是我的变量:this.\u hsp是播放器的水平速度。this.\u world.getTile只是检查像素位置上的对象。在代码的后一部分中,它检查该对象是否可碰撞。tile.material.isCollidable是检查位于指定像素位置的块或“tile”是否可碰撞。您似乎在从左到右迭代块。如果玩家向左移动,你不应该从右向左检查以获得玩家将与之碰撞的第一个方块吗?另外,为什么要将x坐标添加到y位置?此外,您似乎根本没有检查播放器是否与块发生碰撞(除非按“左”键时播放器会尽可能向左移动),而是检查该路径上是否存在可碰撞块。在这种情况下,您需要提供更多代码并提出更具体的问题,以获得有用的帮助。