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) end
speak("カメラの位置を戻します") 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を反転する