なぜ動かないのかな?(質問掲示板)
投稿: naoki
投稿:2012/01/10 17:30:10(最新:2012/01/10 20:51:10)
speak("{一般人}\nおー勇者さん!\nちょっとおみくじを引きませんか?") showImage(102857) speak("{一般人}\n操作は簡単!!\nこんな画面が出るので・・・。") showImage(102864) speak("{一般人}\nマウスを使ってカーソルを①、②、③のどれかに\n合わせて、クリックするだけ!\n") hideImage() case speakWithSelect(2,"はい","いいえ", "{一般人}\nどうですか?\nやってみませんか?\nお金なんて入りませんから。") when 0 speak("{一般人}\nありがとうございます!\nそれでは・・・。") showImage(102857) speak("{一般人}\nこちらのおみくじを引いてください!") loop = true while loop while hasInput() takeInput() deleteTextAll() b = getMousePosition() setVariable("x", b[0])#10 setVariable("y", b[1]) if isMouseMove()#マウスが動いた時の判定 if getVariable("x") > 0 && getVariable("x") <96 && getVariable("y") > 0 && getVariable("y") < 96 showImage(102864)#① elsif getVariable("x") > 232 && getVariable("x") <328 && getVariable("y") > 0 && getVariable("y") < 96 showImage(102871)#② elsif getVariable("x") > 416 && getVariable("x") <512 && getVariable("y") > 0 && getVariable("y") < 96 showImage(102878)#③ else showImage(102857)#それ以外 end end if isMouseDown()#マウスが押された判定 if getVariable("x") > 0 && getVariable("x") <96 && getVariable("y") > 0 && getVariable("y") < 96 case speakWithSelect(2,"はい","いいえ", "①でよろしいですか?") when 0 when 1 end elsif getVariable("x") > 232 && getVariable("x") <328 && getVariable("y") > 0 && getVariable("y") < 96 case speakWithSelect(2,"はい","いいえ", "②でよろしいですか?") when 0 when 1 end elsif getVariable("x") > 416 && getVariable("x") <512 && getVariable("y") > 0 && getVariable("y") < 96 case speakWithSelect(2,"はい","いいえ", "③でよろしいですか?") when 0 when 1 end end end end end when 1 speak("{一般人}\nそうですか。\nそれでは、また今度ー。") end
と言うすごく長いスクリプトですが、
私的には、カーソルが一定の場所にくると、一枚絵が変わり、
一定の場所をクリックすると選択肢が表示~という感じなのですが、
テストプレーの右側にもエラーの報告が出ず、
ただ一枚絵が表示されて止まります。
どうしてでしょうか?
コメントする
コメントするには、ログインする必要があります。
ちなみに、マウスの動作判定と
実際に行いたい処理は
ちょっと面倒でも
押されたかどうかのフラグ変数を利用して
スクリプトを分別しておいた方が
hasInputのループが軽くすむ上、
後で行いたい処理を追加するときに
マウスの動作判定と混ざって
分かりにくくなってしまうことも
防ぐことが出来ます。