сбросить время при нажатии кнопки запуска - PullRequest
0 голосов
/ 01 мая 2020

У меня есть приложение / игра, которая является игрой кликера. Вы должны нажать на батарею определенное количество раз, чтобы выиграть. Я хочу добавить в игру таймер.

var lives = 3;
var score = 0;
onEvent("start_button", "click", function() {
  setScreen("game_screen");
  lives = 3;
  score = 0;
  setText("number_lives", lives);
  setText("total_score", score);
  timedLoop(1000, function() {
    setPosition("half", randomNumber(50,280), randomNumber(50,350));
  });
  timedLoop(3000, function() {
    setScreen("timesUp");
  });
});
onEvent("half", "click", function() {
  setPosition("half", randomNumber(50,280), randomNumber(50, 350));
  if (score == 9) {
    setScreen("win_screen");
  }
  score = score + 1;
  setText("total_score", score);
});
onEvent("background", "click", function() {
  if (lives == 1) {
    setScreen("lose_screen");
  }
  lives = lives - 1;
  setText("number_lives", lives);
});
onEvent("playAgain_button", "click", function() {
  setScreen("welcome_screen");
});
onEvent("tryAgain_button", "click", function() {
  setScreen("welcome_screen");
});
onEvent("userDecisionButton", "click", function() {
  if (getText("userDecision")=="Yes"|| "yes" ) {
    setScreen("game_screen");
    lives = 3;
    score = 0;
    setText("number_lives", lives);
    setText("total_score", score);
    setTimeout(function() {
      setScreen("timesUp");
    }, 3000);
  }
  if (getText("userDecision")=="No" || "no") {
    setScreen("welcome_screen");
    stopTimedLoop();
  }
});

Что происходит, когда вы нажимаете да или нет (для повторного воспроизведения), таймер просто включается в al oop каждые 3 секунды. Нажмите на ссылку, чтобы увидеть мой код работает: https://studio.code.org/projects/applab/5SIn_7HAsJUjYU_Z6qtoy2sloUfQS7cQV8oaBl4rQkg Кто-нибудь может помочь или даже попробовать? Пожалуйста?

1 Ответ

0 голосов
/ 01 мая 2020

[EDITED]

Вы, вероятно, намеревались это:

getText("userDecision")=="Yes"|| "yes"

, чтобы проверить "да" или "да", но ваш синтаксис имеет недостатки. Логически это эквивалентно:

(getText("userDecision")=="Yes") || "yes"

, что всегда верно.

Вы должны использовать это вместо:

"yes" === getText("userDecision").toLowerCase()

У вас есть похожая проблема с getText("userDecision")=="No" || "no".

...