Ok Ich versuche, ein Projekt abzuschließen, und das einzige, was mich zurückhält, ist, dass sie den Timer aufrufen, wenn er ein Match-Spiel anklickt. Der Timer startet, wenn die HTML-Datei geladen wird, was nicht das ist, was das Projekt will, und ich habe einige Methoden ausprobiert, aber endet das Einfrieren des Spiels. Ich möchte, dass der Timer beim Anklicken einer Karte gestartet werden kann.Starten des Timers, wenn man die erste Karte des Memory-Spiels anklickt
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);
};
Dies ist der Code zum Klicken auf eine Karte. Ich habe versucht, einen StartTimer-Code in diese zu integrieren, funktioniert aber nicht.
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);
}
}
}
};
Und diese Klasse Code, den ich für meine HTML-Datei verwenden
<span class="timer">0:00</span>
Setzen Sie Ihren Code in einen Plotter Codepen oder ähnliches und Sie werden wahrscheinlich viel lukrativere Antworten erhalten. Es fehlt hier ein Kontext, der es schwierig macht zu sagen, was passiert. – rjustin
Hier der vollständige Code in Aktion https://codepen.io/cmanderen/pen/aLWZMb Alles funktioniert gut außer dem Timer. Es wird erwartet, dass der Timer startet, wenn eine Karte angeklickt wird und nicht, wenn die Seite geladen wird. –