# オブジェクト0とそれ以外のオブジェクトの当たり判定を。

### この左画面でクリックすれば以下の赤字のスクリプトがコピーされるので、右プログラミング画面で赤矢印の右側へ貼り付けてください。

    	foreach hsid

    		if ( hsid(cnt) == null || hsid(0) == hsid(cnt) ) : continue

    		E3DChkConflict2 hsid(0), -1, hsid(cnt), -1, confflag, confstat

    		if (confflag != 0){

    			mmload dir_cur+"\\Catch.wav", 2, 2

    			mmplay 2

    			E3DSetPos hsid(cnt), rnd(4000)-rnd(4000),0,rnd(4000)-rnd(4000)

    		}

    	loop

### 実行ボタンを押してください。

「foreach hsid」〜「loop」の間を、hsid配列の要素があるだけ繰り返します。

「if ( hsid(cnt) == null || hsid(0) == hsid(cnt) ) : continue」で、hsid配列の要素がない場合と自分自身の場合は、foreach〜loop間のループをやり直します。

「E3DChkConflict2 p1,p2,p3,p4,p5,p6」で、２つの形状データの指定したパーツ同士が、衝突しているかどうを判定します。
[p1]オブジェクト0である形状データを識別するid
[p2]p1のモデル中のパーツの番号
[p3]形状データを識別するid
[p4]p3のモデル中のパーツの番号
[p5]p1, p3で識別される形状同士が、衝突している場合は１が、衝突していない場合は０がセットされる。
[p6]p1が視野外にある場合は、inviewflagに１を、p2が視野外にある場合は、inviewflagに２を、両方とも視野外の場合は、inviewflagに３を、両方とも視野内の場合は、inviewflagに０を代入します。

もしp5が0でない、つまり重なっている場合。

「mmload "filename",p1,p2」で、サウンドファイル読み込み。
[p1]割り当てるバッファの番号
[p2]割り当てるモード。

「mmplay p1」で、サウンド再生します。
[p1]再生するバッファの番号

「E3DSetPos hsid(0),x,y,z」で、形状データを(x,y,z)に移動します。

### ホームへ戻ります。