首页 > 解决方案 > 游戏结束返回

问题描述

我在写游戏。当满足条件(playerlife < 1)时,游戏应该停止。整个游戏都在 singlePlayer 功能中。问题是,我不知道如何结束这个功能。singlePlayer 函数中的简单放置条件不起作用,因为它仅在开始游戏时检查一次。

if (playerlife < 1) {
 return;
}

我还尝试将此条件置于间隔中并检查条件是否持续满足,但我不工作,无论如何它看起来不是一个好主意。

下面是部分代码,在移动玩家后检查了一些条件。游戏类似于老派“Frogger”。当玩家跳入水中时,他失去了 1 条生命。在失去 3 条生命之后,游戏应该结束了。

$(function() {
function singlePlayer() {

  checkPosition(x, y) {
    for (var i = 0; i < raftsTab.length; i++) {
      if (x == raftsTab[i].PosX && y == raftsTab[i].PosY) {
        let thisRaft = raftsTab[i];
        console.log(x, y);
        console.log(thisRaft);
        clearInterval(MoveToPlayer);
        movePlayer(thisRaft);
        return;
      }
    }

    for (var i = 0; i < raftsTab.length; i++) {
      if (x !== raftsTab[i].PosX && y !== raftsTab[i].PosY && y !== 0 && y !== 5 && y !== 10) {
        player1.lifes = player1.lifes - 1;
        //player dead after loosing 3 lives - it would be perfect if game could be ended from here
        $('.lifes').text("Player lifes: " + player1.lifes);

        for (var i = 0; i < trophiesTab.length; i++) {
          if (player1.trophie - 1 == i) {
            trophiesTab[i].show();
            player1.trophie = -1;
          }
        }
        player1.PosX = 5;
        player1.PosY = 10;
        clearInterval(MoveToPlayer);
        changePosition();
        return;
      }
    }

    for (var i = 0; i < trophiesTab.length; i++) {
      if (x == trophiesTab[i].PosX && y == trophiesTab[i].PosY && player1.trophie == -1) {
        trophiesTab[i].hide();
      }
    }

    if (x == 5 && y == 0 && player1.trophie !== -1) {
      tresure1 = tresure1 + player1.trophie;
      player1.items = player1.items + 1;
      $('.items').text("Gathered items: " + player1.items + "/3");
      player1.trophie = -1;
      console.log(tresure1);
    }
    clearInterval(MoveToPlayer);
  }
}
});

标签: javascriptfunctionreturn

解决方案


推荐阅读