gpt4 book ai didi

javascript - (js) 游戏更新函数中按键的 if 语句

转载 作者:行者123 更新时间:2023-11-30 14:56:19 24 4
gpt4 key购买 nike

(游戏)当玩家的物体到达顶部时,物体的y轴运动应该停止移动以避免超过顶部。

我为此做了一个 if 语句,它正在运行。

if(playerObject.yCoordinate <= 0){

function_To_Stop_Y_movment();

}

但是,玩家无法向下移动,因此会垂直卡住。

我需要在 if 语句中添加一个额外的逻辑,它检查是否按下了 keyCode 38

if (playerObject.yCoordinate <= 0 && /* keyCode 38 is pressed */) {

因此,只有当玩家按下向上箭头时,if 语句才会为真。

此 if 语句位于每 0.02 秒运行一次的更新函数内 (setInterval(updateGame, 20);

编辑:

这就是我添加 keyListener 的方式:

 document.addEventListener("keydown", keyDownHandler, false);
function keyDownHandler(e) {
if (e.keyCode == 38 ) {

但我不知道如何将按键检查添加到更新功能中。

最佳答案

您可以有一个单独的变量,并在按下向上箭头时将其设置为“true”。然后在您的 if 语句中使用该变量。如果您这样做,您必须在某个时候将其设置回 false。

var keyup = false;
function keyDownHandler(e) {
if (e.keyCode == 38 ) {
keyup == true;
}
}

if (playerObject.yCoordinate <= 0 && keyup) {
// do your stuff then...
keyup == false;
}

或者,您可以在 keydown 函数中添加位置检查。如果位置在顶部,则不要执行移动功能。如果它在其他任何地方,则继续。基本上是这样的:

function keyDownHandler(e) {
if (e.keyCode == 38 ) {
if (playerObject.yCoordinate <=0) return;
moveCharacter();
}
}

这将检查位置,如果在顶部则什么都不做。如果它在其他任何地方,它将移动 Angular 色。

关于javascript - (js) 游戏更新函数中按键的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47229074/

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