javascript - 访问数组中的所有变量

标签 javascript arrays loops

我确信这是一个简单的问题,但我还是要问。基本上我试图用更少的代码在 javascript (没有 jquery) 中执行以下操作:

var Ground = [];

function gameLoop()
{
    Gravity += 0.2

    if(Ground[0].isCollided(Player))
    {
        Player.dy = 0;
        Gravity = 0;
    }
    if(Ground[1].isCollided(Player))
    {
        Player.dy = 0;
        Gravity = 0;
    }
    if(Ground[2].isCollided(Player))
    {
        Player.dy = 0;
        Gravity = 0;
    }

    Player.dy = Gravity;
}

我使用 javascript 和 html5 canvas 制作的游戏代码极大地简化了代码。 你看到的是我的地面机制。当玩家与地面碰撞时,玩家的 .dy 值将不再随着重力而变化。

您在上面看到的是我通常会这样做的方式,但是如果我有 50 个 FallingM 变量,这可能会占用大量空间。是否可以做类似的事情:

if(Ground[i].isCollided(Player))
{
    Player.dy = 0;
    Gravity = 0;
}

这样无论我添加多少个 Ground 变量,该函数仍然会运行?提前致谢!

最佳答案

你应该使用循环:

for(var x of Ground) {
   if(x.isCollided(Player)) {
      Player.dy = 0;
      Gravity = 0;
      break;
   }
}

关于javascript - 访问数组中的所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44400516/

相关文章:

javascript - array.splice 在 Javascript 中如何工作?

javascript - 使用 D3.js 和 Express.js 的 Web 服务,以及同时进行的多个请求

c# - 实现队列

mysql - MySQL 循环行的准备语句

javascript - 从 for 循环中的函数返回值

javascript - 防止双击带有ajax调用的按钮

javascript - 如何正确设置动态XUL元素的事件?

javascript - 使用对象数组构建一个对象(与子对象递归)

c - 双指针运算,遍历数组字符串的字符

java - 如何修复按重量对包裹进行排序的循环