2017-09-27 6 views
1

私はプロジェクトをまとめようとしています。唯一のことは、マッチゲームをクリックしてタイマーを開始することです。タイマーは、プロジェクトが望んでいないHTMLファイルが読み込まれたときに開始され、いくつかの方法を試しましたが、ゲームがフリーズしてしまいます。私は、カードをクリックするとタイマーを起動させたい。メモリゲームの最初のカードをクリックしたときにタイマーを起動する

var open = []; 
var matched = 0; 
var moveCounter = 0; 
var numStars = 3; 
var timer = { 
    seconds: 0, 
    minutes: 0, 
    clearTime: -1 
}; 

//Start timer 
    var startTimer = function() { 
     if (timer.seconds === 59) { 
      timer.minutes++; 
      timer.seconds = 0; 
     } else { 
      timer.seconds++; 
    }; 


    // Ensure that single digit seconds are preceded with a 0 
    var formattedSec = "0"; 
     if (timer.seconds < 10) { 
      formattedSec += timer.seconds 
     } else { 
      formattedSec = String(timer.seconds); 
     } 

     var time = String(timer.minutes) + ":" + formattedSec; 
     $(".timer").text(time); 
    }; 

これは、カードをクリックするためのコードです。私はこれにstartTimerコードを含めることを試みましたが、うまくいきません。私のHTMLファイルの

var onClick = function() { 
    if (isValid($(this))) { 

     if (open.length === 0) { 
      openCard($(this)); 

     } else if (open.length === 1) { 
      openCard($(this)); 
      moveCounter++; 
      updateMoveCounter(); 

      if (checkMatch()) { 
       setTimeout(setMatch, 300); 

      } else { 
       setTimeout(resetOpen, 700); 

      } 
     } 
    } 
}; 

そして、私が使用して、このクラスコード

<span class="timer">0:00</span> 
+0

コードをplunker codepenなどに入れておくと、より収益性の高い応答が得られる可能性が高くなります。ここには欠けている文脈があり、何が起こっているのかを伝えるのが難しいです。 – rjustin

+0

ここでは、フルコードのhttps://codepen.io/cmandersen/pen/aLWZMbを実行しています。タイマー以外はすべて正常に動作します。カードがクリックされたときにタイマーが開始され、ページがロードされたときはタイマーが開始されません。 –

答えて

0

これを試してみてください:https://codepen.io/anon/pen/boWQbe

あなたが行うために必要なすべては、ページの読み込み時に発生した関数からresetTimer()呼び出しを削除したとその後、(カードの)onClickのチェックをして、タイマーがまだ開始しているかどうかを確認してください。 timer.seconds == 0 && timer.minutes == 0

+0

それはうまくいった。助けてくれてありがとう。時間が大幅に節約され、次のプロジェクトに集中できます。 –

+0

@ChadAndersenあなたがこの回答に満足している場合は、似たような問題で今後他の人を助けるためにそれを受け入れてください。 – rjustin

関連する問題