蛇游戏中的碰撞检测

时间:2014-04-12 11:18:33

标签: javascript collision-detection

我试图制作自己的蛇游戏,并且我在碰撞检查中陷入困境。 我无法找出我的代码有什么问题:

function eatApple() {
        if((x == xx) && (y == yy)) {
        clearApple();
        drawApple();
        sw++;
        sh++;
        score ++;
        score();
        return true;
        } else {
        return false;
        }
    }

这是我检测与苹果碰撞的功能。 x,y是蛇和xx的坐标,yy是苹果的坐标。 sw =蛇的宽度和sh =蛇的高度。我已经在我的newGame函数中调用了该函数(它几乎包含了我所有的游戏函数)并且它根本不起作用......我该怎么办?

1 个答案:

答案 0 :(得分:0)

就像@IngoBürk所说,这还不足以解决您的问题 该功能完成了您的预期。如果蛇的x,y与苹果的xx相同,那么它将进入函数clearApple,drawApple和score,以及更新sw,sh,score变量然后返回true。
出了什么问题是在这个功能之外。你关于蛇的高度和宽度的逻辑看起来有点偏。也许您应该将它存储在如下数组中:

snake = [{x:0, y:1}, {x:1, y:1}, {x:2, y:1}, {x:2, y:2}] 

哪个蛇[0]可以代表它的头部,然后每次蛇吃一个苹果你将另一个x,y坐标推入蛇?