コメント
このコメントは、【トピック】変数でまたわからなくなってしまったへのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
___(投稿日:2011/09/04 18:09/04/11)
ifやcaseのネストは自ずと見づらくなるので、
もう一段階 字下げすると見やすいかも。
さて、内容についてですが、
「基本変数」と「ローカル変数」の違いをもう一度ご確認ください。
一回目。if文で、下の方に飛んで
が実行されます。で、イベント終了。
この時にエラーが出ているわけですが、
代入「=」と比較「==」を間違えています。
zouという値は存在していないのに中身を比較しようとしているので、
エラーを吐いているみたいですね。
正確には「zou = 1」です。
次に、2回目に話しかけたとき、if文で2行目に行きます。
そこでcase文で変数zouを見るわけですが、ここでエラーが出ます。
zouという値は先ほど設定したはずなのに、何故?
それは、変数zouがローカル変数だからです。
ローカル変数はsetVariableでの基本変数と違い、
「イベントが終了した時点で消滅」します。
つまり、この時zouという変数は存在していないんですね。
という訳で、zouなんて無いよとエラーを吐くわけです。
イベントを超えて値を保持させるためには、
setVariableを用いて基本変数として設定してやる必要があります。
参考/Wiki/変数
長文乱文失礼しました。
何かあればまたどうぞー。
もう一段階 字下げすると見やすいかも。
if getFlag("像") case zou when 1 speak("どうやらここは") zou==2 when 2 speak("カツラが明らかに") zou==3 when 3 case speakWithSelect(2,"はい","いいえ", "カツラをとってみますか?") when 0 speak("カツラを手に入れた!!") setVariable("カツラ", 1) setEventDirection("event3",getUpDirection()) zou==4 when 1 end when 4 speak("よく見たら頭に") speak("「パスワードは誰も」") speak("この像、よく見ると") end else setFlag("像", true) zou==1 end
さて、内容についてですが、
「基本変数」と「ローカル変数」の違いをもう一度ご確認ください。
一回目。if文で、下の方に飛んで
setFlag("像", true) zou==1
この時にエラーが出ているわけですが、
代入「=」と比較「==」を間違えています。
zouという値は存在していないのに中身を比較しようとしているので、
エラーを吐いているみたいですね。
正確には「zou = 1」です。
次に、2回目に話しかけたとき、if文で2行目に行きます。
そこでcase文で変数zouを見るわけですが、ここでエラーが出ます。
zouという値は先ほど設定したはずなのに、何故?
それは、変数zouがローカル変数だからです。
ローカル変数はsetVariableでの基本変数と違い、
「イベントが終了した時点で消滅」します。
つまり、この時zouという変数は存在していないんですね。
という訳で、zouなんて無いよとエラーを吐くわけです。
イベントを超えて値を保持させるためには、
setVariableを用いて基本変数として設定してやる必要があります。
参考/Wiki/変数
長文乱文失礼しました。
何かあればまたどうぞー。
もう一段階 字下げすると見やすいかも。
さて、内容についてですが、
「基本変数」と「ローカル変数」の違いをもう一度ご確認ください。
一回目。if文で、下の方に飛んで
この時にエラーが出ているわけですが、
代入「=」と比較「==」を間違えています。
zouという値は存在していないのに中身を比較しようとしているので、
エラーを吐いているみたいですね。
正確には「zou = 1」です。
次に、2回目に話しかけたとき、if文で2行目に行きます。
そこでcase文で変数zouを見るわけですが、ここでエラーが出ます。
zouという値は先ほど設定したはずなのに、何故?
それは、変数zouがローカル変数だからです。
ローカル変数はsetVariableでの基本変数と違い、
「イベントが終了した時点で消滅」します。
つまり、この時zouという変数は存在していないんですね。
という訳で、zouなんて無いよとエラーを吐くわけです。
イベントを超えて値を保持させるためには、
setVariableを用いて基本変数として設定してやる必要があります。
参考/Wiki/変数
長文乱文失礼しました。
何かあればまたどうぞー。