我无法理解碰撞。我知道它背后的想法,但它很难描绘,我试着把它写下来,但它不起作用。这是我得到的最远,虽然它有效,但它并非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;
}
答案 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);
}