07/08/24 23:12:52
sleepは落ち着いてきたからいいよな。>34が正解。
で、FPSの話に移るとして、大前提。
・FPS固定する理由が端末毎の処理速度差を吸収する目的であるとする。
とした場合、sleepがあろーとなかーと、他の部分を考慮しないとダメ。
他の部分ってのは、『処理が早すぎた場合』と『処理が遅れた場合』。
>>19 と前スレの >>993 のFPSクラスの場合、
早すぎた場合に関してはsleepで待っているので問題ない。
問題なのは『処理が遅れた場合』の方で、
メイン処理や描画が 1000/フレーム数ms 以上の場合に遅れを取り戻せない。
レースゲームなんかじゃ致命的で、
遅い端末と早い端末が同時にレーススタートすると、遅い端末が後でゴールする。
>backTime = System.currentTimeMillis();
ここを
backTime += waitTime;
とすれば軽い時にそのうち追いつくけど、追いかけてる最中高速アニメーションw
まだ遅れっぱなしの方がマシってくらい有り得ない。