対象を絞った衝突処理の方法
WinXP,flash8Proにてオーサリングしております。
質問なのですが、下記のスクリプトで
MCの衝突判定処理を行っているのですが、
MCを列挙させる際に、"target_mc"というインスタンスのMCだけを列挙させたい場合は、どうしたら良いのでしょうか。
//////////////////////////////////////
_global.Mc_Hit_Check = function( base:MovieClip )
{
var ply:MovieClip , clip:String , sub:String , g_childs:Number , hit_flg:Boolean;
ply = _root.main_mc.plyaer_mc.hittest_mc;
//指定の階層に含まれるムービークリップを列挙
//何か1つとでも接触したら終了
hit_flg = false;
for( clip in base )
{
//基準から見て孫にあたるムービークリップの数を数える
g_childs = 0;
//子が持っているムービークリップを列挙
//何か1つとでも接触したら終了
for( sub in base[ clip ] )
{
//衝突判定
//接触時にプレイヤーを手前で立ち止まらせる
if( base[ clip ][ sub ].hitTest( ply ) )
{
_global.obje_hit( base[ clip ][ sub ] );
//ループを終了
hit_flg = true;
break;
}
//孫の数を更新
g_childs++;
}
//孫の中のどれか1つとでも接触していれば終了
if( hit_flg )
{
break;
}
//孫が1つもない時は子で衝突判定をとる
else if( ! g_childs )
{
if( base[ clip ].hitTest( ply ) )
{
_global.obje_hit( base[ clip ] );
//ループを終了
break;
}
}
}
};
indexOFなどを使用してみましたが、上手くいかずに
策が尽きてしまいました。
どうぞ宜しくお願い致します。
お礼