なぜ動かないのかな?(質問掲示板)
投稿:
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のループが軽くすむ上、
後で行いたい処理を追加するときに
マウスの動作判定と混ざって
分かりにくくなってしまうことも
防ぐことが出来ます。