ゲームを作成しており、判定をつけようとしたところ・・
int Result;
HITRESULT_LINE Result2 ;
VECTOR a,b,c,d,e,f;
a=VGet( 250 , 200, 0);
b=VGet( 300 , 200, 0 );
c=VGet( 200 , 400, 200 );
d=VGet( 200 , 200, 200);
e=VGet( 300 , 200, 200 );
f=VGet( 200 , 400, 0 );
SetUseZBuffer3D(TRUE ) ;
SetWriteZBuffer3D( TRUE ) ;
DrawTriangle3D(a,b,c, GetColor( 0,255,255 ),TRUE ) ;
DrawTriangle3D(d,e,f, GetColor( 0,0,255 ),TRUE ) ;
Result2 = HitCheck_Line_Triangle( a,c,d,e,f );
Result = HitCheck_Triangle_Triangle( a,b,c,d,e,f );
DrawFormatString( 0 , 220 , GetColor( 255 , 255 , 255 ),"直線三角判定状態%d",Result2);
DrawFormatString( 0 , 200 , GetColor( 255 , 255 , 255 ),"三角三角判定状態%d",Result);
※修正 表記ミス 〜"直線三角判定状態%d",Result2.HitFlag);
(ちょうど水色と青でクロスする形です)
このような感じで簡単なテストプログラムをつくりました。
すると、見た目では間違いなく当たっていて、Lineでも判定ありとなっているのに、Triangleのほうは接触していません。
三角の形をかえたり、座標指定の順番をかえたりしてみたんですが・・
どこか間違っているのでしょうか?