『スクリプト コツ』 フレームスキップスクリプト
投稿者:aoihikawa
投稿日:2011/08/03 00:59
フレームスキップスクリプト
(ご自由にご利用ください)
------------------------------
指定されたメイン処理実行タイミングより
処理が重くなった場合
描画回数を1/2にするスクリプトです。
------------------------------
(ご自由にご利用ください)
------------------------------
指定されたメイン処理実行タイミングより
処理が重くなった場合
描画回数を1/2にするスクリプトです。
------------------------------
#----- 変数の設定 -----
fps = 0
fpscount = 0
oldfpstime = 0
draw_setting = 50 #ゲームのメイン処理実行タイミングを設定(ミリ秒)
draw_count = 0
olddrawtime = 0
draw_flg = false
setBaseTime() #時間計測の開始
startInput() #入力受付の開始
#----- ゲームのメインループスタート -----
mainloop = true
while mainloop
#----- FPSの計測と判定 -----
timer = getTime() #差分の時間を取得
fps = fps + 1 #FPSのカウント
fpscount = timer - oldfpstime
if fpscount < (draw_setting * fps)
draw_flg = true #最低限のFPSを満たしている場合描画OK
else
#最低限のFPSを満たしていない場合、前回描画したかどうか
if draw_flg
draw_flg = false
else
draw_flg = true
end
end
if fpscount > 999
#1秒を超えたらFPSのカウントをリセットする
fps = 0
oldfpstime = timer
fpscount = fpscount % 1000
end
#----- ゲームのメイン処理実行判定 -----
draw_count = timer - olddrawtime #メイン処理実行タイミングのカウント
if draw_setting < draw_count
#ゲームのメイン処理実行タイミングになっていたら、カウントをリセットする
olddrawtime = timer
draw_count = draw_count % draw_setting
#キー入力の判定
while hasInput()
takeInput()
#----- キー入力の判定処理を入れる場所 -----
end
#----- ゲームのメイン処理を入れる場所 -----
#(ゲームの終了時はmainloopをfalseに)
if draw_flg
drawCanvas() #描画OKならキャンバスを更新
end
else
waitTime(1) #ゲームのメイン処理実行タイミングになるまで保留
end
end
endInput() #入力受付の終了
コメント一覧
投稿者:aoihikawa(投稿日:2011/12/22 14:25)
ikosamiさま>
ご指摘ありがとうございます。
修正いたしました。
ご指摘ありがとうございます。
修正いたしました。
投稿者:ikosami(投稿日:2011/12/22 14:03)
#キー入力の判定
while hasInput()
takeInput()
#----- キー入力の判定処理を入れる場所 -----
end
end
ってend一つ多くないですか?
投稿者:ikosami(投稿日:2011/08/04 00:06)
>>処理能力ではなく、時間軸に対して
>>(ある程度の限度まで)一定になるというメリットも。
そういえばそうですね。僕の「いこさみジャンピングDX」も
パソコンの処理能力によってクリアタイムが異様に変わってしまってますし(^^;)
>>(ある程度の限度まで)一定になるというメリットも。
そういえばそうですね。僕の「いこさみジャンピングDX」も
パソコンの処理能力によってクリアタイムが異様に変わってしまってますし(^^;)
投稿者:aoihikawa(投稿日:2011/08/03 22:39)
>hightallerさま
さらなる発展も願いながら(w
>rurun9さま
全然、本職ではなかったり。
ちまちまと調べながら作ってみました。
>ikosamiさま
処理能力ではなく、時間軸に対して
(ある程度の限度まで)一定になるというメリットも。
さらなる発展も願いながら(w
>rurun9さま
全然、本職ではなかったり。
ちまちまと調べながら作ってみました。
>ikosamiさま
処理能力ではなく、時間軸に対して
(ある程度の限度まで)一定になるというメリットも。
投稿者:ikosami(投稿日:2011/08/03 19:10)
確かに、毎回描画してるよりは
はるかに軽くなりそうですね(^^)
はるかに軽くなりそうですね(^^)
投稿者:rurun9(投稿日:2011/08/03 11:49)
コレ凄ーい。
流石、本職の方!勉強になります。
流石、本職の方!勉強になります。
投稿者:@hightaller(投稿日:2011/08/03 05:00)
今月の技術躍進の予感
