Atlas.jsブログ

Webブラウザで動作する、教育用JavaScriptゲームエンジン、Atlas.jsに関する知識共有ブログです。

Atlas.jsの機能〜当たり判定〜


こんにちは。moltomheadです。はりきってやっていきましょう。
今回は当たり判定についてです。Atlas.jsには当たり判定を確認するメソッドが3つあります。それがwithin、intersect、hitTestです。1つずつ確認していきましょう。

within

withinはオブジェクトと、他のオブジェクトを見て、自分が指定した半径以内にオブジェクトがあればtrueを、そうでなければfalseを返します。

obj.within(anotherObj,range);//objがanotherobjから半径range以内にあった場合trueを、そうでない場合falseを返す

intersect

withinでは別のオブジェクトとの当たり判定をとりますが、intersectは座標の絶対値からの当たり判定をとります。ここで注意して欲しいのはsetPositionで指定するx座標,y座標は表示するオブジェクトの左上の座標であるということです。なので、intersectの座標を指定する場合はオブジェクトの半径分ずらす必要があります。

obj.intersect(x,y);//objの半径が座標x,yにあった場合trueを、そうでない場合falseを返す

hitTest

hitTestはwithinと似ていますが、少し違います。withinでは半径を指定していたのに対し、hitTestではその必要がありません。hitTestでは引数に入れたオブジェクトの半径が当たり判定を決める際の半径になります。なので、単にオブジェクトとオブジェクトが当たったらという判定ではこちらのほうが便利です。

obj.hitTest(anotherObj);//objがanotherobjからanotherObjの半径以内にあった場合trueを、そうでない場合falseを返す

remove

removeはその名の通りオブジェクトを消すメソッドです。先ほどの当たり判定と組み合わせることで、シューティングゲームなどに使うことができそうです。

obj.remove();//objを消す

上の3つを組み合わせたサンプルです。
ボールの当たり判定のサンプル
今回のサンプルを発展させて自分だけのシューティングゲームを作ってみるのはいかがでしょうか?


blog comments powered by Disqus

エントリーリスト

カテゴリーリスト

Facebook

Twitter

おすすめの本