(游戏)当玩家对象到达顶部时,对象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 ) {
但我不知道如何将该按键检查添加到该更新功能中。
答案 0 :(得分:2)
你可以有一个单独的变量并将其设置为&#34; true&#34;按下向上箭头时。然后在if语句中使用该变量。如果你这样做,你必须在某个时候将它重新设置为假。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// ...
modelBuilder.Entity<MyItem>().HasKey(e => new { e.user_id, e.item_id });
// ...
}
或者,您可以在keydown函数中添加位置检查。如果位置在顶部,则不执行移动功能。如果它在其他任何地方,那么继续。基本上这个:
var keyup = false;
function keyDownHandler(e) {
if (e.keyCode == 38 ) {
keyup == true;
}
}
if (playerObject.yCoordinate <= 0 && keyup) {
// do your stuff then...
keyup == false;
}
这将检查位置,如果在顶部它将什么都不做。如果它在任何其他地方,它将移动角色。