当我运行以下代码时,由于某种原因,它的执行好像 else 始终为真,但是当我删除 else 语句时,if 语句工作正常,因此表明 if 语句确实有效,我认为,但是我不能设置 Player.moving = true 没有其他的。
if (Player.x > j * 25 - 15 &&
Player.x < j * 25 + 10 &&
Player.y > i * 25 &&
Player.y < i * 25 + 25 &&
Player.direction === 1
) {
Player.moving = false;
}
else if (Player.x > j * 25 &&
Player.x < j * 25 + 25 &&
Player.y > i * 25 - 15 &&
Player.y < i * 25 + 10 &&
Player.direction === 2
) {
Player.moving = false;
}
else if (Player.x > j * 25 &&
Player.x < j * 25 + 40 &&
Player.y > i * 25 &&
Player.y < i * 25 + 25 &&
Player.direction === 3
) {
Player.moving = false;
}
else if (Player.x > j * 25 &&
Player.x < j * 25 + 25 &&
Player.y > i * 25 &&
Player.y < i * 25 + 50 &&
Player.direction === 4
) {
Player.moving = false;
}
else {
Player.moving = true;
}
其中 i 和 j 是平铺地图中对象的索引,因此平铺地图看起来像这样: var tilemap = [" "," "];
例如当
if (Player.x > j * 25 &&
Player.x < j * 25 + 40 &&
Player.y > i * 25 &&
Player.y < i * 25 + 25 &&
Player.direction === 3
) {
Player.moving = false;
}
是唯一存在的代码。当 [i][j] 处的对象按预期位于其左侧时,玩家将停止向左移动。然而,在存在 else 语句的情况下,它只是继续移动,Player.moving 保持为真。谢谢你的帮助!