クリック入力の範囲(質問掲示板

投稿:   39 mini tomato 投稿:2012/08/11 09:37:11(最新:2012/08/11 14:57:11)
ノベルゲーム制作中です。
画面内にクリックで反応するボタンを設置したいなと思っているのですが、
マウス入力の範囲を設定する方法がわかりません。
具体的に申しますと、
getMousePosition()
でクリック判定を求めた時に、

X座標700
Y座標0

の位置に

タテヨコ90・90

のボタンを設置したいのです。
いまだスクリプトの上っ面を撫でるばかりの知識しかなくお恥ずかしいのですが、がんばって理解いたしますので、どなたかお知恵をお貸しください。

コメントする

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

コメント一覧

  39 mini tomato(投稿日:2012/08/11 14:57, 履歴)
おぉ!こんなにすぐに沢山の返信が!!
皆様ありがとうございます!

>aoihikawaさん
ありがとうございます、戻り値はそういう風に書くんですね!
独学ではおそらく半年かかってもたどり着かなかったと思うので、やはりここで聞いて正解でした。
ノベルゲームを作るのは初めてで、画像の置き方など分からない所も多々あり、実はaoihikawaさんのブログ講座にしばしばお世話になっております。重ねて御礼申し上げます。

>rurun9さん
いつもお世話になっております!
躓くであろう所を、あらかじめ補足してくださるとは(あなたが神か)!
wikiと、類似内容の質問掲示板のスレットは目を通しながら、スクリプトを書いているのですが、少しゲームに合うように変更を加えただけでエラーの嵐に見舞われるので、こうしたお心遣いは本当に助かります。
ゲームが出来ましたら、また遊んでやってくださいまし。
ありがとうございました。
Nyan mini rurun9(投稿日:2012/08/11 13:17, 履歴)
理解した後のお話。
・マウス位置がどこなのかは常に更新したいけど、最初にキー操作に入ったときに「配列じゃないよ」て怒られない為の仕込み
・設置したつもりのボタンを押す、という事
をまとめるとこんな感じに。
#マウスカーソル位置取得用変数(p[0],p[1])
p=createArray()
p[0]=400; p[1]=300
button=false #カーソルがボタンの上にあるかどうか
osu=false #ボタンを押したかどうか

startInput() #キー操作ココから
key=true
while key
while hasInput()
 takeInput()

 if isMouseMove()
  p=getMousePosition()
 elsif isMouseDown() && button
  osu=true
 elsif isKeyUp("ESC")
  key=false
 end

end #hasInput()ループ終

if 700<p[0] && p[0]<790 && 0<p[1] && p[1]<90
 button=true
else
 button=false
end

if osu
 osu=false
 #ボタンを押していた場合の処理をこの辺に書く
end

waitTime(20)

end #keyループ終
endInput() #キー操作ココまで

goBadEnding()
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/08/11 10:16, 履歴)
getMousePosition関数の戻り値は
[0]がX、[1]がYとなっている配列となっています

今回の場合、
Xの範囲は700~790
Yの範囲は0~90ですので

#↑省略
#マウス座標の取得
MousePos = getMousePosition() 

if MousePos[0] > 700 && MousePos[0] < 790 &&
   MousePos[1] > 0 && MousePos[1] < 90
  
  #ボタンの範囲内
  
end

となります