jquery 无边界蛇游戏

f0brbegy  于 2023-03-01  发布在  jQuery
关注(0)|答案(3)|浏览(114)

我正在尝试改编这个蛇游戏:http://jsfiddle.net/unsign3d/uq6YL/有一个"滚动的网格",在这个意义上,蛇将能够离开网格的任何一边,并将出现在另一边。这种蛇游戏的一个例子可以在这里找到:我确信这个解决方案很简单,但不幸的是,它在概念上和语法上超出了我的理解范围。
这是检测冲突的代码:

function check_collision(x, y, array) {
    //This function will check if the provided x/y coordinates exist
    //in an array of cells or not
    for (var i = 0; i < array.length; i++) {
        if (array[i].x == x && array[i].y == y) return true;
    }
    return false;
}

任何帮助都将不胜感激。

0s7z1bwu

0s7z1bwu1#

我认为这段代码检查了蛇是否到达了边界。他将保留一个砖块数组,在那里蛇x,y不应该到达(如果点击“游戏结束”)。在每个intervel中,运行蛇的线程将更新它的位置。新的位置将作为x & y传递。如果它在边界单元格(数组)的任何地方,函数将返回true意味着它到达了边界。否则为false

eqqqjvef

eqqqjvef2#

让我们思考一下这个问题。在游戏的原始版本中,如果蛇离开棋盘,游戏就结束了。我们如何实现这一点呢?因为我们使用的是矩形网格,所以我们知道棋盘边缘的坐标。如果蛇头超出了这些范围,游戏就结束了。

在上面的例子中,蛇不能移动到(-50,-50),因为这不是棋盘上的有效位置,所以当蛇移动时,我们需要检查它的下一个x和y位置是否有效,如果x小于0或大于100,或者y小于0或大于200,蛇不能移动到那里。在游戏的常规版本中,游戏会结束。
一旦你得到工作,你可以实现环绕风格的边界,只需做一些改变。首先你需要确定边界的坐标,并把它画在棋盘上。现在你会有你的新的'禁区'坐标。但不是结束游戏时,蛇超出这些界限,你只需要改变蛇的'x'或'y'坐标。

例如,假设蛇向右移动。当它碰到边界时,它的“x”位置将是95。当这种情况发生时,我们将其更改为5,使它出现在屏幕的左侧。类似地,如果蛇向上移动并碰到边界,它的“y”位置将是5。要使它出现在屏幕的底部,我们只需要把这个位置改为195。

mwecs4sa

mwecs4sa3#

只需要用最大窗口坐标对坐标取模。

相关问题