碰撞代码不起作用?

时间:2013-07-30 14:44:22

标签: 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; 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;   
}

1 个答案:

答案 0 :(得分:0)

您的代码已脱离上下文,很难确切知道您要执行的操作。如果你正在使用网格,我会说你应该检查你正在检测碰撞的对象旁边的空格。如果您发布更多代码,也许我可以提供更多帮助。

var size = 5;//whatever you want 
var x = new Array(size); 
for (var i = 0; i < 10; i++) {
 x[i] = new Array(size); 
}