レビュー#2 「もなこSOSバーサスアンリ」紹介
http://grayscale.iza-yoi.net/review2/index.html
プログラムのどうでもいいところは ■■■■ で塗りつぶすぜ☆
単純化した模式図
次のようなパターンが よく出てくるぜ☆
┌────────────────────────────────────────┐ここから
function ■■■■ _OnStart( )
state = 1
end
function ■■■■ _OnStep( )
if state == 1 then
■■■■
state = 2
elseif state == 2 then
■■■■
state = 3
elseif state == 3 then
■■■■
state = 4
else
changeScene( ■■■■ )
end
end
└────────────────────────────────────────┘ここまで
■■■■_OnStep( )の内容を、stateフラグを使って変えているぜ☆
例えば、ボタン1を押したときに 次の state に遷移するには、
次のように if文の中で stateフラグを変更する。
┌────────────────────────────────────────┐ここから
if getJoyPressCount( 0 , BUTTON_TRIG1 ) == 1 then
--ここで効果音の再生や、
--シーン開始からの経過時間を取得する。
state = 2
end
└────────────────────────────────────────┘ここまで
ここで 頻出するパターンを 覚えておこう。
┌────────────────────────────────────────┐ここから
if state == 1 then
■■■■
elseif state == 2 then
if getJoyPressCount( 0 , BUTTON_TRIG1 ) == 1 then
■■■■
uptime = getSceneUptime() -- シーン開始からの経過時間
state = 3
end
elseif state == 3 then
if getSceneUptime() - uptime > 20 then
■■■■
state = 4
end
else
changeScene( ■■■■ )
end
└────────────────────────────────────────┘ここまで
state == 2 の時に ボタン1を押したら、まず、シーン開始からの経過時間を 記憶しておく。
次に state == 3 の時に、
┌────────────────────────────────────────┐ここから
if getSceneUptime() - uptime > 20 then
--ここに処理を書く
end
└────────────────────────────────────────┘ここまで
と書くことで、20フレーム経過した後に 処理を開始する、ということができる。
こうすることで、
・決定ボタンの効果音が鳴っている20フレームの間、
一瞬で次のシーンに進んでしまわないよう、待つ
ということができるな☆
ただ、20フレームって 一瞬だぜ☆? 1秒もない感じ☆?
※追記
AIMS ver1.90a なら、
単に 20 フレーム待機するには wait( 20 ) という書き方があるぜ☆
[0回]
http://grayscale.dou-jin.com/Entry/2/「もなこSOSバーサスアンリ」のソースから見るボタン押下の後の20フレーム待機