条件が揃うまで繰り返す方法(質問掲示板

投稿: User icon mini @jin_decide 投稿:2012/03/20 11:48:20(最新:2012/03/20 16:53:20)
初歩的な質問で申し訳ございません

ノベルゲームを製作中です
その中で、場所を移動しながらヒントを探すというのをするのですがそれを選択肢で場所変更すると選択肢の内容が終わると次へ行ってしまいますよね?
例えば選択肢で公園と家があったとして
公園を選択したら、家は選択できず流されてしまう

しかし、家と公園両方へいかないと進めないようにしたいのです

上の例の場合、公園を選択→条件1達成→選択肢に戻る→家を選択→条件2達成→新規イベント
とするにはどうすれば良いのでしょうか?

お願いいたします

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Nyan mini rurun9(投稿日:2012/03/20 16:53, 履歴)
ハイハイ、コピペ禁止
何をつくっていて、何故そう書くとできるのかを理解してなければ意味がありません
という事で、ド素人の皆さんはこちらからどうぞ。

スクリプト/変数
スクリプト/フラグ

スクリプト/Rmakeで自由なゲームをつくろう / 第01回 スクリプトって何?
スクリプト/つくってみよう0


…で、葵様の提示した形で完成している筈なんですが。

saijyaku2011様のは、ふたつのフラグが両方trueの間、case~endが繰り返されます
つまりフラグに何も入っていないので、繰り返すどころか一度も通過しませんw
なとおとき様のは、条件を反転させる!を後ろではなく前につけないとダメなのと、|| は「または、もしくは、or」の意味なので結局違う動作になっちゃいます、残念w
Human icon mini クソザコ(投稿日:2012/03/20 11:59, 履歴)
こういう場合はwhile文が必要になりますね。

while getFlag("a") && getFlag("b")
 case speakWithSelect(2,"公園","家", 
    "どこ行く?")
  when 0
    speak("うんちゃらかんちゃら")
    setFlag("a" , true)
  when 1
    speak("うんちゃらかんちゃら")
    setFlag("b" , true)
 end
end
speak("公園と家に行きました。")

こんな感じでやればできるはずです。
User icon mini garaxygames(投稿日:2012/03/20 15:28, 履歴)
ありがとうございます。
しかし教えていただいたものをコピーして実行しましたが、「公園と家に行きました。」としか表示されません。
Material 71926 1 mini なとおとき(投稿日:2012/03/20 16:25, 履歴)
while getFlag("a")! && getFlag("b")!
case speakWithSelect(2,"公園","家",
"どこ行く?")
when 0
speak("うんちゃらかんちゃら")
setFlag("a" , true)
when 1
speak("うんちゃらかんちゃら")
setFlag("b" , true)
end
end
speak("公園と家に行きました。")


こうしてみ。
Material 71926 1 mini なとおとき(投稿日:2012/03/20 16:26, 履歴)
while getFlag("a") || getFlag("b")
case speakWithSelect(2,"公園","家",
"どこ行く?")
when 0
speak("うんちゃらかんちゃら")
setFlag("a" , true)
when 1
speak("うんちゃらかんちゃら")
setFlag("b" , true)
end
end
speak("公園と家に行きました。")

こっちだw
Material 71926 1 mini なとおとき(投稿日:2012/03/20 16:27, 履歴)
...(´・ω・`)

while getFlag("a")! || getFlag("b")!

1行目これで...w
Material 71926 1 mini なとおとき(投稿日:2012/03/20 16:30, 履歴)
テストしてみたらまたちがってたw
while !getFlag("a") || !getFlag("b")

返信連打もうしわけありませんw
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/03/20 12:00, 履歴)
フラグを管理する変数と
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