WebプログラミングT

 目次へ 前へ 次へ

2007/11/27 久米

4.ActionScriptの応用 モーションダイナミック制御

4.1 各種制御

  各種制御
1 ムービークリップの衝突判定
2 ムービークリップのドラッグ&ドロップ
3 ムービークリップの複製
4 ムービークリップの生成
5 ムービークリップのマスク化
6 ムービークリップの回転

 

4.2 衝突判定

衝突判定には次の3つの方法があります。

  方法

衝突判定(hitTestの返り値)true条件

確度
1 インスタンス.hitTest(もう一方のインスタンス) インスタンス同士の境界ボックス(四角)が重なった時点 おおざっぱ
2 インスタンス.hitTest(x, y, false) インスタンスの境界ボックスと点(x, y)が重なった時点 ちゅうぐらい
3 インスタンス.hitTest(x, y, true) インスタンスの外形と点(x, y)が重なった時点 厳密

例題 丸を2つ作ってぶつけてみよう

演習 シャボン玉割りゲームを作ってみよう ★★★☆☆

シャボン玉割りゲームのスクリプトを考えよ。確度厳密で衝突判定せよ。

  1. シャボン玉がonEnterFrameで上に移動する距離は5ピクセルとせよ。
  2. シャボン玉がonEnterFrameで右に移動する距離は2ピクセルとせよ。
  3. ぶつける_root.hikoki_mcが、onEnterFrameで右に移動する距離は10ピクセルとせよ。

*********ルートのフレームアクション**********

hikoki_mc.onRelease=function(){
this.hassha();//紙飛行機発射
}

*********紙飛行機シンボルのフレームアクション**********

hasshaFlag=false;//trueで発射。flaseは停止中

this.onEnterFrame=function(){
if(!hasshaFlag) return;
/*
ここには右に移動するスクリプトを記述
*/
}

function hassha(){
/*発射したときFlagを変更する*/
}

*********シャボン玉シンボルのフレームアクション**********

this.onEnterFrame = function() {

/*
上と右に移動
衝突したら割れる スクリプト
*/

}