Javascript 冲突代码为';不行吗?

Javascript 冲突代码为';不行吗?,javascript,html,canvas,collision,Javascript,Html,Canvas,Collision,我不明白。我知道它背后的想法,但它是如此难以想象,我试图写下来,但它不工作。这是我得到的最远的结果,虽然它有效,但并非100%完美无瑕。 这是一个可以移动的正方形。想象一下马里奥,但是一个正方形。我想看看左边、右边、下面或上面是否有一个街区 function collide(){ var left = avatarX; var top = avatarY; var right = avatarX + 50; var bottom = avatarY + 50; for(var i = 0

我不明白。我知道它背后的想法,但它是如此难以想象,我试图写下来,但它不工作。这是我得到的最远的结果,虽然它有效,但并非100%完美无瑕。 这是一个可以移动的正方形。想象一下马里奥,但是一个正方形。我想看看左边、右边、下面或上面是否有一个街区

function collide(){
var left = avatarX;
var top = avatarY;
var right = avatarX + 50;
var bottom = avatarY + 50;
    for(var i = 0; i < board.length;i+=4){
        var bleft = board[i];
        var btop = board[i+1];
        var bright = board[i + 2] + board[i];
        var bbottom = board[i + 3] + board[i+1];
        if(btop <= bottom && bleft <= left && bright >= right){
            avatarY = board[i + 1] - 50;
        return true;    
        }
    }

return false;   
}
函数冲突(){
var left=rx;
var-top=化身;
var right=Rx+50;
var-bottom=avatarY+50;
对于(变量i=0;i如果(btop您的代码脱离上下文,很难确切知道您要做什么。如果您使用的是网格,我会说您应该检查正在检测碰撞的对象附近的空格。如果您发布更多代码,也许我可以提供更多帮助

var size = 5;//whatever you want 
var x = new Array(size); 
for (var i = 0; i < 10; i++) {
 x[i] = new Array(size); 
}
var size=5;//你想要什么都行
var x=新数组(大小);
对于(变量i=0;i<10;i++){
x[i]=新阵列(大小);
}

你的电路板阵列存储的到底是什么?位置?对象?布尔值?电路板0/4/8等存储x电路板1/5/9存储y电路板2/6/10存储的是宽度电路板3/7/11存储的是高度。我会让每一层都有一个大的阵列,这会引起混乱,很抱歉这仍然令人困惑,但我认为最好的pl一个简单的方法是制作一个2d数组,然后简单地检查(x-1,y),(x,y+1),(x+1,y),(x,y-1)是否存在占用这些数组槽的对象。我的意思是,甚至很难理解您存储的是什么数据类型。我会重新开始,并执行类似于
var size=5;//任何您想要的var x=new array(size);例如(var i=0;i<10;i++){x[i]=new Array(size);}
如果这是一件简单的事情,您可以诚实地在被占用的项中设置为true(您只关心碰撞,而不必关心基于碰撞发生的情况)。只需检查相邻单元格是否正确。请为您的问题添加详细信息。请给出上下文。目前,您的问题非常不清楚。