むしろjavascriptでゲーム作ろうぜat GAMEDEVむしろjavascriptでゲーム作ろうぜ - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト584:名前は開発中のものです。 11/08/15 13:54:53.71 bohVflxm JavaScriptでゲーム作るとき、 メインループは、どう書いてる? 俺のは、こんな感じ。 var timer; var interval = 1000/50; window.onload = function() { clearTimeout(timer); timer = setInterval(loop, interval); draw(); }; 585:名前は開発中のものです。 11/08/17 03:39:57.10 NP/VSZdL 俺はこうだな var timer,theday; var wtime=0; window.onload = function(){ clearTimeout(timer); for(;;){ theday=new Date(); if(theday.getTime()-wtime>17)break; }; wtime=theday.getTime(); timerid=setTimeout("ruup()",15); //処理 }; setTimeoutがいい加減だから短めにとって予定時間まで空ループ 586:名前は開発中のものです。 11/08/17 09:55:52.84 ZLcNjWKh 実行してないけど、今考えた。 ttp://ideone.com/exWRh 参考: ttp://www.tnksoft.com/reading/classgame/engine/01/015.php 587:名前は開発中のものです。 11/08/17 17:47:19.15 YQYx4WBX メインループ>>528ではこんな感じの実装にしてる。 呼び出しはHTMLから<body onLoad="main()"></body>で function main() { var fps = 60; //fps var oldtime = Date.now(); var framenum = 0; loop(); function loop() { //処理 if (framenum > fps) framenum = 0; newtime = Date.now(); if (framenum == 0) oldtime = Date.now(); framenum++; targettime = Math.round(oldtime + framenum * (1000.0 / fps)) waittime = (targettime - newtime <= 0) ? 1 : targettime - newtime ; setTimeout(main_routine, waittime); } } 予定時間に合うようにsetTimeoutの間隔を調整しながらループさせてる。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch