なぜ動かないのかな?(質問掲示板

投稿: 000 1  mini 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

と言うすごく長いスクリプトですが、
私的には、カーソルが一定の場所にくると、一枚絵が変わり、
一定の場所をクリックすると選択肢が表示~という感じなのですが、
テストプレーの右側にもエラーの報告が出ず、
ただ一枚絵が表示されて止まります。
どうしてでしょうか?

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Cdv30200 aoi icon mini aoihikawa(投稿日:2012/01/10 20:51, 履歴)
おめでとうございます。


ちなみに、マウスの動作判定と
実際に行いたい処理は

ちょっと面倒でも
押されたかどうかのフラグ変数を利用して
スクリプトを分別しておいた方が
hasInputのループが軽くすむ上、

後で行いたい処理を追加するときに
マウスの動作判定と混ざって
分かりにくくなってしまうことも
防ぐことが出来ます。
000 1  mini naoki(投稿日:2012/01/10 20:44, 履歴)
ありがとうございます!!
無事、解決しました!!
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/01/10 18:35, 履歴)
1つめ
入力の開始、終了を指示する
startInput関数
endInput関数がありません。

2つめ
ループ処理中の動作を安定させるための
waitTime関数がありません。
loop内の最後に30程度を設定してください。

3つめ
getMousePosition関数は
マウスの状態を取得した中でしか使用できません。
この場合、マウスの動作を判定している
isMouseMove関数のif文の中に挿入するのが
正しいと思われます。