キーボードでのパスワード入力についての質問です><(質問掲示板)
投稿: アイネ・レグルス
投稿:2012/07/04 23:18:04(最新:2012/07/05 01:01:05)
コチラの記事を参考にさせて頂き、パスワードが合っているとゲームクリアできるようにし、パスワードが合っていないとゲームオーバーになるというスクリプトをやろうと思っているのですが、一体どこに[goEnding()]と[goBadEnding()]を入力すれば上手く作動するのでしょうか?
ちなみに、色々と試してみたのですが、パスワードが間近っていてもゲームクリアできたり、パスワードが合っていてもゲームオーバーになったりしてしまいました…
かなり難しい内容ですので、無理な場合は諦めますが、もし方法があれば教えて頂けると幸いです。
ちなみに、ゲーム形式はノベルゲームです。
それでは、よろしくお願い致します。
ツイート
ちなみに、色々と試してみたのですが、パスワードが間近っていてもゲームクリアできたり、パスワードが合っていてもゲームオーバーになったりしてしまいました…
かなり難しい内容ですので、無理な場合は諦めますが、もし方法があれば教えて頂けると幸いです。
ちなみに、ゲーム形式はノベルゲームです。
それでは、よろしくお願い致します。
コメントする
コメントするには、ログインする必要があります。
フラグ変数を用意
パスワード○があっていたときの処理で
フラグ変数を操作
スクリプトの最後でフラグ変数の状態によって
クリアかゲームオーバーを分岐
しかし、フラグの用意はできたものの…
#////////////////////////////////////////////
if K == 1
if i == 0
#パスワード1に合っていたときの処理
answer = true
elsif i == 1
#パスワード2に合っていたときの処理
answer = true
elsif i == 1
#パスワード3に合っていたときの処理
answer = true
end
end
if getFlag("A")
goEnding()
#////////////////////////////////////////////
if pasyu == 5
i = i + 1
end
i = i + 1
end
if !answer
speak("パスワードが違います。\n入力:",p)
end
hideImage()
goBadEnding()
setFlag("A", true)
end
こんな書き方をしたら、パスは合っているはずなのにゲームオーバーに…
を使ってもらえると分かりやすくなります
さて、整理しなおしたものを拝見すると
まず、スクリプトは上から順に処理されます
パスワードがあっていたときの処理の中で
フラグ変数「answer」が変更されていますね
次に、if文でフラグ変数「"A"」の状態を元に
処理が分岐されています
フラグ変数「"A"」は
ここまで何も設定されていないので
スルーされてif文を抜けます
つまり、goEnding関数は絶対に処理されない
流れになっているわけです
次にフラグ変数「answer」の状態を元に
処理が分岐されています
ここでspeak関数で表示がされるか分岐した後
if文が終了しています
最後にif文などで分岐されていない場所に
goBadEnding関数がきているので
必ずゲームオーバーに移動します
まずはこのように、順を追って
処理がどうなっているか
確認する必要があります
それから、どこに何の処理を入れるべきか
まずはコメントなどで準備をしておき
その後、実際にスクリプトを入れるように
してみましょう
とりあえず今の段階では実現は難しそうなので、スクリプトにある程度なれたら再挑戦してみます。返信ありがとうございましたm(__)m