2016-11-13 2 views
0

Es ist meine erste Frage hier. Ich suchte nach einem ähnlichen Thema, aber ich fand nicht die Antwort, die ich verwenden könnte. Ich möchte einen Timer in meinem Memory-Spiel bekommen, der die aktuelle Zeit anzeigt (Ich möchte Date-Objekt verwenden). Ich benutzte eine Funktion von hier How to create an accurate timer in javascript?, aber nach dem ersten Klick auf die Karte, beginnt die Zeit nicht von 0. Es zeigt die Zeit, die seit dem Laden der Seite vergangen ist.Get Timer startet von 0 nach Klick in Memory-Spiel

//variable for timer 
var gameScore = $(".score-game"); 
var timer = $("#timer"); 
gameScore.html("0 seconds"); 
var hasGameStarted = false; 
var score = Date.now(); 

    //timer function 
    function countdownTimer() { 
     if (hasGameStarted !== true) { 
      scoreTimeout = setInterval(function() { 
       var delta = Date.now() - score; 
       gameScore.html(Math.floor(delta/1000) + " seconds"); 
      }, 1000); 
      hasGameStarted = true; 
     } 
    } 
cards.on('click', function() { 
countdownTimer(); 
}); 

Wenn Sie sehen wollen, wie mein Spiel funktioniert, überprüfen Sie diese Seite (Timer gut arbeitet nun aber die Zeit ab dem Datum Objekt nicht angezeigt):

https://borkson.github.io/Cars-Memory-Game/

Sorry für mein Englisch: (

Antwort

0

ich Ihren Code zu verstehen, meinen Sie, dass Sie einen Timer von Delta Variable berechnet starten und aktualisiert alle 1000 Millisekunden

//variable for timer 
 
var gameScore = $(".score-game"); 
 
var timer = $("#timer"); 
 
gameScore.html("0 seconds"); 
 
var hasGameStarted = false; 
 
var score = Date.now(); 
 

 
//timer function 
 
function countdownTimer() { 
 
    if (hasGameStarted !== true) { 
 
    scoreTimeout = setInterval(function() { 
 
     var delta = Date.now() - score; 
 
     gameScore.html(Math.floor(delta/1000) + " seconds"); 
 
    }, 1000); 
 
    hasGameStarted = true; 
 
    } 
 
} 
 

 
$("#cards").on('click', function() { 
 
    countdownTimer(); 
 
});
#cards { 
 
    border-radius: 25px; 
 
    background: #73AD21; 
 
    padding: 20px; 
 
    width: 200px; 
 
    height: 200px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 
 
<img id="cards"></img> 
 
<div class="score-game">score</div> 
 
<div id="timer">timer</div>

+1

Ohne eine Erklärung dieser Code und Antwort ist sinnlos – charlietfl

0

Vielleicht gibt es eine mehr clevere Art und Weise, aber man konnte ...

var starttime = Date.now();

... dann unten, in Ihrer Funktion ...

var delta = starttime - Partitur;

Hilft das?

+0

ID hat nicht funktioniert, weil ich hatte eine Variable für Date.now() vor (var Score). Jetzt sieht es so aus: var punkte = Date.now(); var startTime = Date.now(); Funktion countdownTimer() { if (hasGameStarted == true!) { scoreTimeout = setInterval (function() {var delta = starttime - Partitur; gameScore.html (Math.floor (Delta/1000) + "Sekunden"); }, 1000); hasGameStarted = true; } } – borkson

+0

versuchen Sie, das js-Schnipsel-Tool zu verwenden, es ist eine nette Funktion und hilft, Code zu lesen – thefailtheory

Verwandte Themen