キーボードでのパスワード入力についての質問です><(質問掲示板)
投稿:
アイネ・レグルス
投稿:2012/07/04 23:18:04(最新:2012/07/05 01:01:05)
アイネ・レグルス
投稿: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
こんな書き方をしたら、パスは合っているはずなのにゲームオーバーに…
{{{code }}}を使ってもらえると分かりやすくなります
さて、整理しなおしたものを拝見すると
#//////////////////////////////////////////// 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