CoroCoro : Step3 – 衝突判定をしてみよう!

phiary に引っ越しました. 毎日プログラミングやWebに関する情報を発信しています! RSS 登録してたまに覗いたり, tweet やハテブして拡散してもらえると幸いです.

Pocket

このStepでは, 敵との衝突判定を実装します. enchant.js が intersect という便利な関数を用意してくれているのでそれを使って楽しちゃいましょう!!

SAMPLE

サンプルはこちらで見ることができます.

CODE

プレイヤーとエネミーの衝突判定

enchant.js には Entityというクラスがあり, このクラスがEntity同士の衝突判定を行う intersect という関数をサポートしています. Sprite クラスは Entity クラスを, ArcSprite クラスは Sprite クラスを継承しているので, もちろんこの関数を使って衝突判定を行うことができます.

ただし, 一つ注意点があります. intersect は矩形同士の衝突判定なので今回のような 円同士の衝突判定だと正確な判定はできせん. 今回は, intersect を使いますが気が向いたら円同士の衝突判定も追加するかもです.

// 敵との衝突判定
var len=game.enemyList.length;
for (var i=0; i<len; ++i) {
    if ( this.intersect(game.enemyList[i])==true ) {
        // 衝突したらゲームをストップする
        game.stop();
    }
}

TRACK BACK URL

POST COMMENT

メールアドレスが公開されることはありません。