コメント
このコメントは、【トピック】変数についてへのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
___(投稿日:2011/04/03 22:04/03/11)
Rmake記法を利用すると、インデントが行えて便利ですよーっと。
Rmake記法
私が上記コードを新規データに貼りつけてみた所、
一回目は特にエラー無く動作しましたが、2回目以降…
すなわち、if getFlag("植物") 以下でエラーがでました。
エラーメッセージは"not defined variable : syokubutu"ですので、
つまり「変数syokubutuってなんぞ?」と言うことです。
変数には3種類あり、それぞれ
という感じになってるみたいです。
今回のエラーは、基本変数とローカル変数が
混合してしまったものではないかと考えられます。
後は蛇足となりますが、今回のように
「変数syokubutuの値によって処理を変更する」場合、
if~endを繰り返すのではなく、case文を使うと楽になる場合があります。
例文として、こんなコードが挙げられています。
どの場合でも、speakの後 endまで飛んできます。
a >= 4 とかが再現できないっぽいので、
今回のコードの場合は使用すべきかどうか悩みますが…。
エラーが出るなら、エラー番号(例:#1009)ですとか、
エラーメッセージとかが画面下部に出ていると思います。
それをお教え頂けると、よりスムーズに回答できるかと。
問題が解決できなかったら、お手数ですが
より詳しい情報と共に再度質問してください。
長々と失礼しました。
Rmake記法
if getFlag("植物") if syokubutu==0 speak("観葉植物が置いてある") end if syokubutu==1 speak("観葉植物が置いてある") end if syokubutu==2 speak("液体肥料が刺さっている") end if syokubutu==3 speak("よく見たら接着剤だった") speak("接着剤を手に入れた!") setVariable("接着剤", 1) end if syokubutu>=4 speak("観葉植物が置いてある") end else setFlag("植物", true) setVariable("syokubutu", 0) end
私が上記コードを新規データに貼りつけてみた所、
一回目は特にエラー無く動作しましたが、2回目以降…
すなわち、if getFlag("植物") 以下でエラーがでました。
エラーメッセージは"not defined variable : syokubutu"ですので、
つまり「変数syokubutuってなんぞ?」と言うことです。
変数には3種類あり、それぞれ
・ローカル変数 cnt = 0 syokubutu = 0 # 気軽に使用できる。 # シーン、チャプター、イベント後などで消滅。 ・基本変数 setVariable("変数名" , 0) # 取得、設定共に少々長くなる。 # セーブ時に保存、ロード時に読み込みされる。 # ゲーム内ならどこからでも参照可。 ・グローバル変数 addSaveGlobalVariable("Gold", 1) # 一人のゲーム作成者に付き8つまで値を保存可能。 # 複数ゲームをまたいで値を持ち越せる。 # Aでお金を稼ぐとBでも、Bで経験値を稼ぐとAでも、みたいな。
という感じになってるみたいです。
今回のエラーは、基本変数とローカル変数が
混合してしまったものではないかと考えられます。
setVariable("syokubutu", 0) # このように基本変数で宣言しているのですから、 if syokubutu==0 # この部分を if GetVariable("syokubutu")==0 # とすれば、エラーは無くなると思いますよ。
後は蛇足となりますが、今回のように
「変数syokubutuの値によって処理を変更する」場合、
if~endを繰り返すのではなく、case文を使うと楽になる場合があります。
例文として、こんなコードが挙げられています。
a = 2 case a when 1 # a == 1なら speak("case -> 1") when 2 # a == 2なら speak("case -> 2") when 3 # a == 3なら speak("case -> 3") end
どの場合でも、speakの後 endまで飛んできます。
a >= 4 とかが再現できないっぽいので、
今回のコードの場合は使用すべきかどうか悩みますが…。
エラーが出るなら、エラー番号(例:#1009)ですとか、
エラーメッセージとかが画面下部に出ていると思います。
それをお教え頂けると、よりスムーズに回答できるかと。
問題が解決できなかったら、お手数ですが
より詳しい情報と共に再度質問してください。
長々と失礼しました。
Rmake記法
私が上記コードを新規データに貼りつけてみた所、
一回目は特にエラー無く動作しましたが、2回目以降…
すなわち、if getFlag("植物") 以下でエラーがでました。
エラーメッセージは"not defined variable : syokubutu"ですので、
つまり「変数syokubutuってなんぞ?」と言うことです。
変数には3種類あり、それぞれ
という感じになってるみたいです。
今回のエラーは、基本変数とローカル変数が
混合してしまったものではないかと考えられます。
後は蛇足となりますが、今回のように
「変数syokubutuの値によって処理を変更する」場合、
if~endを繰り返すのではなく、case文を使うと楽になる場合があります。
例文として、こんなコードが挙げられています。
どの場合でも、speakの後 endまで飛んできます。
a >= 4 とかが再現できないっぽいので、
今回のコードの場合は使用すべきかどうか悩みますが…。
エラーが出るなら、エラー番号(例:#1009)ですとか、
エラーメッセージとかが画面下部に出ていると思います。
それをお教え頂けると、よりスムーズに回答できるかと。
問題が解決できなかったら、お手数ですが
より詳しい情報と共に再度質問してください。
長々と失礼しました。