Flashゲーム作成講座

初心者からクリエイター志望まで Flashゲームの作り方 入門

ゲームの作り方を初心者にも分かりやすく説明します。ゲームクリエイターを目指す方にも役立つ情報を。

1ドット当たり判定

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 で、当たり判定を行う範囲が変わってきます。

flash as3 hitTestPointの判定タイプ

true と false の使い分けですが、基本は true でいいと思います。
当たり判定をしたい部分に抜けが多くクリックしにくい場合など false の方が適しているときも
あります。
状況に合わせて使い分けるようにして下さい。

また、見た目と当たりの範囲を変えたい場合には
当たり判定用のインスタンスを別に作り (透明で作成 アルファ値1%)
これを重ねて使うという方法もあります。

 

[ 当たり判定について ]へ戻る