Javascript 在迷宫墙处停止字符

Javascript 在迷宫墙处停止字符,javascript,html-table,maze,Javascript,Html Table,Maze,我在做一个迷宫游戏,我用一张桌子来布置迷宫。角色的移动完美无瑕,但它穿墙而过,我使用的是类似于的东西。这是可行的,但这个角色几乎是个幽灵。当字符到达边框时,是否有方法使其停止?我的迷宫在 保存rat所在的单元格,然后在请求移动时,检查当前单元格是否在用户尝试移动的方向上有边框,或者未来单元格是否在相反方向上有边框,如果有,则中止移动请求。例如,如果用户单击右键,请检查当前单元格是否有右边框,或者rat将移动到的单元格是否有左边框。由于您使用的是jQuery,并且墙是由单元格上的类显示的,因此可以

我在做一个迷宫游戏,我用一张桌子来布置迷宫。角色的移动完美无瑕,但它穿墙而过,我使用的是类似于
的东西。这是可行的,但这个角色几乎是个幽灵。当字符到达
边框时,是否有方法使其停止?我的迷宫在

保存rat所在的单元格,然后在请求移动时,检查当前单元格是否在用户尝试移动的方向上有边框,或者未来单元格是否在相反方向上有边框,如果有,则中止移动请求。例如,如果用户单击右键,请检查当前单元格是否有右边框,或者rat将移动到的单元格是否有左边框。

由于您使用的是jQuery,并且墙是由单元格上的类显示的,因此可以使用jQuery的
hasClass
方法检查您尝试移动到的单元格是否有墙

function up() {
    //check if the cell has a border on the bottom
    if ($("#td" + (algernon - 8)).hasClass('b')) return;
    $("td").css("background","transparent");
    algernon -= 8;
    setTimeout("refresh()", 0);
}

function down() {
    //check if the cell has a border on the top
    if ($("#td" + (algernon + 8)).hasClass('t')) return;
    $("td").css("background","transparent");
    algernon += 8;
    setTimeout("refresh()", 0);
}

function leftclick() {
    //check if the cell has a border on the right
    if ($("#td" + (algernon - 1)).hasClass('r')) return;
    $("td").css("background","transparent");
    algernon -= 1;
    setTimeout("refresh()", 0);
}

function rightclick() {
    //check if the cell has a border on the left
    if ($("#td" + (algernon + 1)).hasClass('l')) return;
    $("td").css("background","transparent");
    algernon += 1;
    setTimeout("refresh()", 0);
}

我希望这会有所帮助

请在此处发布相关代码。在JSFIDDLE中复制问题解决问题后,这个问题就没有任何意义了。如果你把相关的代码粘贴到这里,这个问题将来也会很有用。也就是说,在任何情况下,这听起来都是一个过于本地化的问题。无法检测任何元素的实际
边框,因为它只是元素的一个属性。相反,您必须检查您的“角色”是否正在移动到其他元素。Timothée Groleau在这个问题上给了你一个很好的建议。正如我在之前的评论中所说的,没有办法检测到元素边界的碰撞。相反,你需要检查你的“老鼠”是否会移动到另一个元素。不幸的是,我试图投票,并将此问题作为完全重复的问题关闭:(。如果你的问题没有(好)答案,与其问一个完全相同的问题,不如改进你的问题。谢谢!!!我已经尝试了好几天了!我试过了,它适用于
up()
左键单击()
但另一个没有安装…我的课程正确吗?我现在正在工作,所以我不能自己测试,但是如果你能等两个小时,我马上就可以了…没关系,我已经拿到了。谢谢