flash で使える簡単な当たり判定の方法を説明します。
対象となるインスタンスと、指定した座標が重なっているか調べることができます。
マウスカーソルを動かしてみると
画面中央の絵と重なった時だけ「当り」が表示されます。
このプログラムは次のようになってます。
addEventListener(Event.ENTER_FRAME, mainloop); function mainloop(event:Event):void { if( moon.hitTestPoint(stage.mouseX, stage.mouseY, true) ){ msgbox.text = "当り"; } else { msgbox.text = "外れ"; } }
当たり判定を行っているのは
moon.hitTestPoint(stage.mouseX, stage.mouseY, true)
の部分で、今回はマウスカーソル座標を元に当たり判定を行っています。
内容は
インスタンス名.hitTestPoint( x座標, y座標, true か false )
戻り値は、当っていれば true
当っていなければ false を返します。
第3引数は true か false で、当たり判定を行う範囲が変わってきます。
true と false の使い分けですが、基本は true でいいと思います。
当たり判定をしたい部分に抜けが多くクリックしにくい場合など false の方が適しているときも
あります。
状況に合わせて使い分けるようにして下さい。
また、見た目と当たりの範囲を変えたい場合には
当たり判定用のインスタンスを別に作り (透明で作成 アルファ値1%)
これを重ねて使うという方法もあります。
[ 当たり判定について ]へ戻る