while文1
投稿者:
rdjk5242
投稿日:2012/02/06 16:47
speak("while文を使います。")
speak("例として、お店の処理をします。")
a=0
while a<1
case speakWithSelect(5,"刀","盾","槍","魔法","やっぱりやめる",
"なにをお求めでしょうか?")
when 0
speak("すみません、\n当店では取り扱っていないんです。")
when 1
speak("すみません、\n当店では取り扱っていないんです。")
when 2
speak("すみません、\n当店では取り扱っていないんです。")
when 3
speak("すみません、\n当店では取り扱っていないんです。")
when 4
a=a+1
end
end
speak("このようにお店を作ることなどに使いやすいです。")
speak("また、使用されているスクリプトを表示します。")
speak("これで終わります。")
goEnding()
コメントする
コメントするには、ログインする必要があります。
コメント一覧
前に、メニューに現在のお金を表示することに挑戦したんですけど、
その時はまだ理解できなかったので、コピーするだけだったんですが
今日見直してみました。
でもこれってonShowCustomParameter() は呼ばないのに何で設定するんですか?
そして読んでないのにちゃんと作動するんでしょうか・・・
その時はまだ理解できなかったので、コピーするだけだったんですが
今日見直してみました。
setCustomParamMenuEnable(true)
#カスタムメニューを表示可能にする
setCustomParamMenuName("現在のGold")
#カスタムメニューの名前設定
def onShowCustomParameter()
#onShowCustomParameter()に以下のスクリプトを入れる
setCustomParamName(0, "お金")
#カスタムメニューのインデックス0にお金の項目を入れる
setCustomParamValue(0,getMoney() )
#お金の項目の内容を所持金にする。
endでもこれってonShowCustomParameter() は呼ばないのに何で設定するんですか?
そして読んでないのにちゃんと作動するんでしょうか・・・
while文が「お店のスクリプトなどに便利」の意味が分かりました。
「やっぱりやめる」を選択するまで
お店のスクリプトを繰り返したかったわけですね。
こういった、続ける/続けないなどの2択の場合は
変数の値にtrue/falseを使用します。
「やっぱりやめる」を選択するまで
お店のスクリプトを繰り返したかったわけですね。
こういった、続ける/続けないなどの2択の場合は
変数の値にtrue/falseを使用します。
loop = true
while loop
case speakWithSelect(5,"刀","盾","槍","魔法","やっぱりやめる",
"なにをお求めでしょうか?")
when 0
speak("すみません、\n当店では取り扱っていないんです。")
when 1
speak("すみません、\n当店では取り扱っていないんです。")
when 2
speak("すみません、\n当店では取り扱っていないんです。")
when 3
speak("すみません、\n当店では取り扱っていないんです。")
when 4
loop = false
end
end
意味が分からない場合は
1行ずつ、それがどういった動作を行う処理になっているのか
順に辿るようにして考えてみましょう。
例として、上記側の動きを解説します。
1行ずつ、それがどういった動作を行う処理になっているのか
順に辿るようにして考えてみましょう。
例として、上記側の動きを解説します。
setVariable("a",getPlayerPosX()) #"a"に現在のプレイヤーのX座標を取得して設定
speak("カメラが右方向に移動します") #メッセージの表示
while getVariable("a") < getPlayerPosX()+128*11 #"a"が現在のプレイヤーのX座標+128*11になるまで繰り返し
moveCamera(true,getVariable("a") , getPlayerPosY()) #カメラの位置をX座標"a",Y座標現在のプレイヤーのY座標に移動
setVariable("a",getVariable("a")+0.1) #"a"に"a"+0.1を設定
end #繰り替えしの始めに戻る
掲示板を見て、色々改良した版↓
でもこれって意味がよくわからないんですけど・・・
setVariable("a",getPlayerPosX())
speak("カメラが右方向に移動します")
while getVariable("a")<getPlayerPosX()+128*11
moveCamera(true,getVariable("a") , getPlayerPosY())
setVariable("a",getVariable("a")+0.1)
endspeak("カメラの位置を戻します")
setVariable("a",getPlayerPosX()+128*11)
while getVariable("a")>getPlayerPosX()
moveCamera(true, getVariable("a"), getPlayerPosY())
setVariable("a",getVariable("a")-0.8)
end
moveCamera(false)
でもこれって意味がよくわからないんですけど・・・
例えば、先日の表示処理で
というようにスマートに纏めることができます。
#変更前
setVariable("タイマー",createText(200, 1, 200, 200))
setText( getVariable("タイマー"), "あと"+(30-floor((getTime()/10)/100))+"秒")
waitTime(1000)
setText( getVariable("タイマー"), "あと"+(30-floor((getTime()/10)/100))+"秒")
waitTime(1000)
setText( getVariable("タイマー"), "あと"+(30-floor((getTime()/10)/100))+"秒")
・
・
・
#変更後
setVariable("タイマー",createText(200, 1, 200, 200))
i = 0
while i < 10
#この中をiが10未満の間繰り返す
setText( getVariable("タイマー"), "あと"+(30-floor((getTime()/10)/100))+"秒")
waitTime(1000)
i = i + 1 #iをカウント
end
というようにスマートに纏めることができます。
今回はwhile文の条件として利用したため
trueでループON、falseでループOFFといった動作になります。
他にもif文の条件や
イベントの開始条件にも利用することが出来ます。
例:1度実行したら発生しなくなるイベント
有効条件:!(getFlag("Otakara01")) 「!()」で括るとtrueとfalseを反転する
speak("宝箱を開けた!") setFlag("Otakara01", true)