如何在淡入倒计时计数器之后调用游戏启动方法?

时间:2015-12-03 15:54:42

标签: javascript jquery countdown countdowntimer jquery-countdown

功能性:

在游戏开始之前,会有一个通知期限通知用户游戏将在xSecs中开始。在此通知期间,用户将无法使用任何功能:

  1. 倒数计数器无法启动
  2. 当用户尝试点击按钮
  3. 时,将无法点击游戏“点击我”图像按钮

    因此,在通知期后,计数器将开始倒计时序列,而用户将点击“点击我”图像按钮将图像从页面顶部移动到页面底部。

    我做了什么:

    我创建了通知计时器以及倒计时计数器和游戏点按。因此,此时,倒数计时器仅在通知计时器完成时才开始计时。

    问题:

    即使在通知期间,用户仍然可以使用“点按我”图像按钮将图像向下移动。因此,我需要确保用户在通知倒计时期间无法使用“点击我”图像按钮,但仅在通知倒计时之后。

    因此,我如何设置“Tap Me”方法才能在通知倒计时后才能使用?

    var count = 5,
      interval, CounterInterval, x;
    //Method to enable star to decrease when 'tap' button is tapped
    var step = 20,
      counter = 0,
      timer = 20;
    //To set bottom limit variable
    var bottomStarLimit = 2308;
    
    function GameStartTimer() {
        if (count > 0) {
          $("#CountdownFadeInTimer").fadeOut('slow', function() {
            $("#CountdownFadeInTimer").text(count);
            $("#CountdownFadeInTimer").fadeIn();
            count--;
          });
        } else if (count == 0) {
          $("#CountdownFadeInTimer").fadeOut('slow', function() {
            $("#CountdownFadeInTimer").text("Start!!");
            $("#CountdownFadeInTimer").fadeIn();
            count--;
            //method call to Game function & Timer    
            initiateGameTimer();
            GameStart();
          });
        } else {
          //fade out countdown text
          $("#CountdownFadeInTimer").fadeOut();
          clearInterval(interval);
        }
      }
      //Trigger to set GameStartTimer function: fade in notification counter
    interval = setInterval(function() {
      GameStartTimer()
    }, 2000);
    
    //Tap the star down function
    function GameStart() {
      console.log("GameStart");
      x = document.getElementById('GameStar').offsetTop;
      console.log("x:" + x);
      //check condition if star reach bottom page limit, else continue to move down
      if (x < bottomStarLimit)
        x = x + step;
      document.getElementById('GameStar').style.top = x + "px";
    }
    
    function initiateGameTimer() {
      CounterInterval = setInterval(function() {
        counter = counter + 1;
        timer = timer - 1;
        $('#GameTime').html(timer);
        console.log(timer);
        // Gamce condition check when timer =0: position of the star < or > 2308(bottom page limit)
        if (timer == 0) {
          clearInterval(CounterInterval);
          if (x >= 2308) {
            $("#GamePage").hide();
            $("#Congratulations").show();
          } else if (x < 2308) {
            console.log("fail");
            $("#GamePage").hide();
            $("#GameOver").show();
          }
        }
      }, 1000)
    }
    <div id="GamePage" style="width:100%; height:100%;z-index=1;">
    
      <div id="CountdownFadeInTimer"></div>
    
      <p id="GameTime">20</p>
      <img id="GameStar" type="image" src="lib/Elements/The%20Star.png">
      <button id="Tap" type="image" src="lib/Elements/Tap%20here%20button.png" onclick="GameStart()" />
    
    </div>

1 个答案:

答案 0 :(得分:2)

将按钮的disabled属性设置为disabled。然后在通知倒计时结束时使用以下JavaScript删除该属性:

document.getElementById("Tap").removeAttribute("disabled");