定期的に処理を実行する
定期的に処理を行う場合は、scene.setInterval()
を利用します。
凡例
javascript
scene.setInterval(function () {
// 1 秒ごとに行う処理
}, 1000);
一定時間後に処理を実行する場合は scene.setTimeout()
を利用してください。
利用例
次のコンテンツは、表示されている矩形の色が 1 秒毎にランダムで変わります。
詳細
scene.setInterval()
ではミリ秒単位で時間を指定できますが、実際にはフレーム単位で処理が行われます。例えばゲームが 30 FPS、つまり 1 秒間に 30 フレーム描画している場合、1 フレームの長さは約 33 ミリ秒なので、実際の処理時間は 33 ミリ秒単位に切り上げられます。 scene.setInterval()
に登録した関数は scene.clearInterval()
で登録を解除できます。
javascript
var intervalId = scene.setInterval(function () {
// 1 秒毎に行う処理
}, 1000);
scene.clearInterval(intervalId); // scene.setIntervalで作成した定期処理を解除
scene.setInterval()
ではない、グローバルの setInterval()
や、同じくグローバルの setTimeout()
は使用しないよう注意してください。 これは、Aksahic Engine のコンテンツは、現実の時間とは違う速度で実行されることがあるためです (例えば、Akashic Engine のゲームは、ニコニコ生放送上で実行されることがあります。その場合、タイムシフトではシークバーに連動する形で動作します)。この時、 scene.setInterval()
は実行速度を踏まえて経過時間を処理するのですが、 グローバルの setInterval()
は指定した時間そのままの時間経過で処理するため、処理の実行タイミングがずれてしまうことがあり得ます。