条件が揃うまで繰り返す方法(質問掲示板)
投稿: @jin_decide
投稿:2012/03/20 11:48:20(最新:2012/03/20 16:53:20)
初歩的な質問で申し訳ございません
ノベルゲームを製作中です
その中で、場所を移動しながらヒントを探すというのをするのですがそれを選択肢で場所変更すると選択肢の内容が終わると次へ行ってしまいますよね?
例えば選択肢で公園と家があったとして
公園を選択したら、家は選択できず流されてしまう
しかし、家と公園両方へいかないと進めないようにしたいのです
上の例の場合、公園を選択→条件1達成→選択肢に戻る→家を選択→条件2達成→新規イベント
とするにはどうすれば良いのでしょうか?
お願いいたします
ツイート
ノベルゲームを製作中です
その中で、場所を移動しながらヒントを探すというのをするのですがそれを選択肢で場所変更すると選択肢の内容が終わると次へ行ってしまいますよね?
例えば選択肢で公園と家があったとして
公園を選択したら、家は選択できず流されてしまう
しかし、家と公園両方へいかないと進めないようにしたいのです
上の例の場合、公園を選択→条件1達成→選択肢に戻る→家を選択→条件2達成→新規イベント
とするにはどうすれば良いのでしょうか?
お願いいたします
コメントする
コメントするには、ログインする必要があります。
コメント一覧
こういう場合はwhile文が必要になりますね。
こんな感じでやればできるはずです。
while getFlag("a") && getFlag("b") case speakWithSelect(2,"公園","家", "どこ行く?") when 0 speak("うんちゃらかんちゃら") setFlag("a" , true) when 1 speak("うんちゃらかんちゃら") setFlag("b" , true) end end speak("公園と家に行きました。")
こんな感じでやればできるはずです。
garaxygames(投稿日:2012/03/20 15:28,
履歴)
ありがとうございます。
しかし教えていただいたものをコピーして実行しましたが、「公園と家に行きました。」としか表示されません。
しかし教えていただいたものをコピーして実行しましたが、「公園と家に行きました。」としか表示されません。
while getFlag("a")! && getFlag("b")!
case speakWithSelect(2,"公園","家",
"どこ行く?")
when 0
speak("うんちゃらかんちゃら")
setFlag("a" , true)
when 1
speak("うんちゃらかんちゃら")
setFlag("b" , true)
end
end
speak("公園と家に行きました。")
こうしてみ。
case speakWithSelect(2,"公園","家",
"どこ行く?")
when 0
speak("うんちゃらかんちゃら")
setFlag("a" , true)
when 1
speak("うんちゃらかんちゃら")
setFlag("b" , true)
end
end
speak("公園と家に行きました。")
こうしてみ。
while getFlag("a") || getFlag("b")
case speakWithSelect(2,"公園","家",
"どこ行く?")
when 0
speak("うんちゃらかんちゃら")
setFlag("a" , true)
when 1
speak("うんちゃらかんちゃら")
setFlag("b" , true)
end
end
speak("公園と家に行きました。")
こっちだw
case speakWithSelect(2,"公園","家",
"どこ行く?")
when 0
speak("うんちゃらかんちゃら")
setFlag("a" , true)
when 1
speak("うんちゃらかんちゃら")
setFlag("b" , true)
end
end
speak("公園と家に行きました。")
こっちだw
フラグを管理する変数と
while文を使用します
スクリプト言語のマニュアル
・変数
・条件式
・while文
<例>
while文を使用します
スクリプト言語のマニュアル
・変数
・条件式
・while文
<例>
joken_01 = false #条件1の達成状況 joken_02 = false #条件2の達成状況 while !(joken_01 && joken_02) #条件1と条件2の両方が達成されていなければ繰り返し実行 case speakWithSelect(2, "公園", "家", "どこに移動しますか?") when 0 #公園を選択 # ----- 会話イベントなど ----- joken_01 = true #条件1を達成 when 1 #家を選択 # ----- 会話イベントなど ----- joken_02 = true #条件2を達成 end end
何をつくっていて、何故そう書くとできるのかを理解してなければ意味がありません
という事で、ド素人の皆さんはこちらからどうぞ。
・スクリプト/変数
・スクリプト/フラグ
・スクリプト/Rmakeで自由なゲームをつくろう / 第01回 スクリプトって何?
・スクリプト/つくってみよう0
…で、葵様の提示した形で完成している筈なんですが。
saijyaku2011様のは、ふたつのフラグが両方trueの間、case~endが繰り返されます
つまりフラグに何も入っていないので、繰り返すどころか一度も通過しませんw
なとおとき様のは、条件を反転させる!を後ろではなく前につけないとダメなのと、|| は「または、もしくは、or」の意味なので結局違う動作になっちゃいます、残念w