gpt4 book ai didi

javascript - 吃 bean 游戏 - 建一堵墙挡住他的行动

转载 作者:行者123 更新时间:2023-11-28 06:44:28 27 4
gpt4 key购买 nike

我正在使用 Jquery 制作吃 bean 人游戏。吃 bean 人的移动由箭头键引导,这会触发一个 setInterval() ,使他重复移动他宽度的距离,给人一种他在完全直线移动的错觉。按一个新键会清除间隔并开始他移动到其他地方。

function Player(){

this.left = $('#pacMan').css('left');
/**/
this.top = $('#pacMan').css('top');
/**/
this.rightMove = function(){

if (){
this.left = parseInt(this.left) + 20;
$('#pacMan').animate({'left': this.left}, 100);
}


};

//包含移动方法的对象。空的 if 语句是我稍后要解决的问题。

var timer;
$('body').keydown(function () {
var key = event.which;
window.clearInterval(timer);
timer = window.setInterval(function() {
switch (key) {
case 37:

pacMan.leftMove();

break;

//按键功能。我知道这有点脱节。

所以上面的工作正常。然而,我的问题是:如果我放了一堵墙会怎样?我怎样才能让他停下来?我可以用一个街区来做,但不是很多。让我解释一下。

所以我把所有的东西都放在一个吃 bean 宽度的网格上。我将一个 div 子项附加到其中一个网格,选择它旁边的网格框并将其放入一个数组中。我最初的 if 语句是,如果吃 bean 人的位置与相邻网格的位置相同,他的其中一个 Action 将被禁用。所以如果他就在方 block 的左边,他就不能向右移动,给人一种方 block 停止的错觉他从移动。例如

If(Pacman.position().left !== gridBox120.position.left(){
pacMan.moveRight()
}
else{
clearInterval()
}

//只要吃 bean 人不在方 block 旁边,他就可以向右移动。

这行得通。但是,如果我想在舞台上放置多个积木怎么办?我怎样才能在 if 语句中得到所有这些东西 block ?或者这是最好的方法吗?

我的计划是将相邻的 div ID 放在一个数组中,如果 Pacman 的位置与数组中任何元素的 ID 的位置相同,他就不能向右移动。

我不知道该怎么做。某种迭代?或者也许数组不是最好的主意?

如果没有正确解释,我会回复评论。

Image link. yellow is pacman. purple are the neighbor divs that are sent to arrays

最佳答案

我已经为破砖机做了类似的事情。我已经测试了 obj 和 array 来存储 block 。 Array 比 obj 快得多。我的方法是:将所有网格存储在数组中并在每次移动后验证 left-1、left+1、top-1 和 top+1

if (grid[left-1][top] == "block" && move == "left") {
Pacman.stopFunction()
}

关于javascript - 吃 bean 游戏 - 建一堵墙挡住他的行动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118350/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com