试图为我的HTML游戏创造最快时间的高分



所以我正在制作这个反应游戏,玩家必须尽快点击一个框。我显示了单击框所花费的时间,但我正在尝试显示玩家单击框的最快时间。我真的很感激你的帮助。

这是我的代码:

<body>
<div>
<p>Your time: <span id="time"></span></p>
<p>Highscore: <span id="highscore"></span></p>
<div id="shape"></div>
</div>
<script>
var start = new Date().getTime();
function makeShapeAppear() {
document.getElementById("shape").style.display = "block"
start = new Date().getTime();
}
function appearAfterDelay() {
setTimeout(makeShapeAppear, 1000);
}
appearAfterDelay();
document.getElementById("shape").onclick = function() {
var end = new Date().getTime();
var timeTaken = (end - start)/1000;
document.getElementById("shape").style.display = "none";
document.getElementById("time").innerHTML = timeTaken + "s";
appearAfterDelay();
}
</script>
</body>

总而言之,我想在高分 id 中显示最短的"timeTaken"变量。

如果没有高分,则存储您上次拍摄的时间,如果新花费的时间小于您的高分,则将高分设置为所花费的时间。喜欢这个。

#shape{
width: 200px;
height: 200px;
background-color:red;
}
<body>
<div>
<p>Your time:
<span id="time"></span>
</p>
<p>Highscore:
<span id="highscore"></span>
</p>
<div id="shape"></div>
</div>
<script>
var highscore;
var start = new Date().getTime();
function makeShapeAppear() {
document.getElementById("shape").style.display = "block"
start = new Date().getTime();
}
function appearAfterDelay() {
setTimeout(makeShapeAppear, 1000);
}
appearAfterDelay();
document.getElementById("shape").onclick = function () {
var end = new Date().getTime();
var timeTaken = (end - start) / 1000;
highscore = (timeTaken < highscore || !highscore ? timeTaken : highscore);
document.getElementById("shape").style.display = "none";
document.getElementById("time").innerHTML = timeTaken + "s";
document.getElementById("highscore").innerHTML = highscore + "s";
appearAfterDelay();
}
</script>
</body>

我建议使用cookie。每次用户单击该框时,请检查cookie是否存在,如果没有,请创建一个具有时间值的cookie。如果确实存在,请将其值与当前值进行比较,并根据它是否较低更新cookie值。

如果要显示">玩家(单数)单击框的最快时间",并且希望在用户关闭并打开浏览器或选项卡的情况下保留该值,则可以使用localStorage或sessionStorage。

localStorage.setItem("bestTime", timeTaken);

var bestTime = localStorage.getItem("bestTime");
if(timeTaken > bestTime){
localStorage.setItem("bestTime", timeTaken);
}

此方法将信息存储在浏览器中。 如果要存储玩家点击的最快时间(复数)或保存数据以在不同的浏览器中使用,则需要使用数据库存储。

最新更新