【发布时间】:2019-11-28 20:06:57
【问题描述】:
背景
我正在使用 HTML/JavaScript 制作一个简单的 2D side-scroller game,并使用 ES6 来管理我的游戏对象。
代码设计
我有 2 个每个级别平台的数组要跟踪:
shortPlatformlongPlatform
对于每个平台,都有一个单独的循环来检查玩家对象和相应平台之间的冲突 .
但是,循环只允许与最后一个平台发生冲突。
这是我的两个循环的代码:
for (let i = 0; i < shortPlatform.length; i++)
{
shortPlatform[i].renderObject();
// check if collide with players
var dir = colCheck(player, shortPlatform[i]);
}
for (let x = 0; x < longPlatform.length; x++)
{
longPlatform[x].renderObject();
// check if collide with players
var dir2 = colCheck(player, longPlatform[x]);
};
注意
我在这里阅读了许多关于闭包的其他答案,但似乎无法让任何解决方案发挥作用。
【问题讨论】:
-
dir 和 dir2 在循环的每个步骤中都被覆盖。您可能希望使用数组或列表来存储这些值
标签: javascript arrays loops