Ich habe ein kleines Spiel, bei dem ein Reset-Button erscheinen sollte, wenn alle Herzen verloren sind. Ich kann beim besten Willen nicht herausfinden, warum es nicht aufgetaucht ist. Ich habe es dreimal umgeschrieben und mich gefragt, ob ich seinen Wert so zugewiesen habe, aber keines davon hat funktioniert. Wenn ich die Anweisung entferne, die die Schaltfläche verbirgt, wird die Schaltfläche angezeigt, es sollten jedoch Validierungsanweisungen vorhanden sein, damit sie wieder angezeigt wird.
const resetButton = document.getElementById('reset'); function reset() { location.reload(); } resetButton.addEventListener('click', reset); // Hide reset button until no hearts left function hideReset() { if (foodHeart1.src.match("images/emptyheart.png" && playHeart1.src.match("images/emptyheart.png"))) { resetButton.style.display = "visible"; } else { resetButton.style.display = "none"; } } hideReset();
Ich habe versucht, es zu verschieben und an einem neuen Ort zu platzieren, aber ohne Erfolg. Ich weiß nicht, wie ich das sonst schreiben soll.
什么调用函数 hideReset()?如果在主更新循环或命中碰撞中没有调用它,则没有任何东西可以到达那里。使用图像来查询玩家是否死亡是一个有趣的想法,但仅使用变量会更高效。
下面是一些代码,似乎可以实现您所需的功能:
我不相信有 style.display = "visible",但如果这是错误的,我希望有人能纠正我。 (快速查看 MDN。我已经设置了此处内联,但您可以使用任何适当的值来显示按钮。
我还在匹配函数上使用了长度运算符,因为它返回一个数组(用于您的条件语句)。
正如 James 在评论中提到的,当您更新心脏值时,很可能会调用 hideReset() 函数。在本例中,我将其放入更改图像的函数中。
有很多方法可以改进这一点,但我希望它能让您克服最初面临的困难