Javascript ゲームを変更していて、ゲーム ボードの上部にカウントダウン タイマー (3:00 分から 0 秒まで) を追加する必要があります。ゲームとタイマーの両方を作成しました。ユーザーがゲームの「開始」ボタンをクリックすると、タイマーが開始されます。(つまり、ゲームは 3 分後に終了するように計時されます)
私の問題は、JavaScript がマルチスレッド化されていないため、ユーザーがゲームを同時にプレイしている間、ゲームのカウントダウン タイマーを実行 (ティック) できないことです。あれは正しいですか?
新しいマルチスレッド JavaScript ライブラリを使用する以外に、これを機能させる何らかの方法があるように思えました。
これが私のタイマーです:
<script type="text/javascript">
// set minutes
var mins = 3;
// calculate the seconds (don't change this! unless time progresses at a different speed for you...)
var secs = mins * 60;
function countdown() {
setTimeout('Decrement()',1000);
}
function Decrement() {
if (document.getElementById) {
minutes = document.getElementById("minutes");
seconds = document.getElementById("seconds");
// if less than a minute remaining
if (seconds < 59) {
seconds.value = secs;
} else {
minutes.value = getminutes();
seconds.value = getseconds();
}
secs--;
setTimeout('Decrement()',1000);
}
}
function getminutes() {
// minutes is seconds divided by 60, rounded down
mins = Math.floor(secs / 60);
return mins;
}
function getseconds() {
// take mins remaining (as seconds) away from total seconds remaining
return secs-Math.round(mins *60);
}
</script>
<script>
countdown();
</script>
<div id="timer">
<input id="minutes" value="3" type="text" style="width: 14px; border: none; background-color:none; font-size: 16px; font-weight: bold;">:<input id="seconds" value="00" type="text" style="width: 26px; border: none; background-color:none; font-size: 16px; font-weight: bold;"> remaining
</div>
すべてを開始する私のゲームの部分は次のとおりです。
<script>
$(function(){
$("#button-start").click(game.start);
});
</script>
メソッドとタイマーgame.start
のメソッドを実行するにはどうすればよいですか? countdown()
「開始」をクリックしたときに両方のメソッドを実行しようとするたびに、JavaScript がまったく実行されません。何も機能せず、フリーズします。一度に実行しようとしている2つのメソッドからだと思いますか?