HitCheck_Triangle_Triangleで以下のような判定をすると、当たっていないのに当たっている判定になります。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int Result;
VECTOR vec2[3],vec[3];
VECTOR CameraPos,CameraPos2 ;
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() < 0 ){return -1 ;}
SetDrawScreen( DX_SCREEN_BACK ) ;
SetCameraNearFar( 500.0f, 2500000.0f ) ;
SetUseZBuffer3D( TRUE ) ;
SetWriteZBuffer3D( TRUE ) ;
//三角形座標
vec2[0]=VGet(-210395.984f,-7457.25732f,-3220.00098f);vec2[1]=VGet(-213649.250f,0.0f,-17241.9922f);vec2[2]=VGet(-227638.953f,0.0f,-17241.9922f);
vec[0]=VGet(-224441.688f,-7496.15771f,-3146.85645f);vec[1]=VGet(-227712.500f,31.8109550f,-17301.8066f);vec[2]=VGet(-241628.656f,0.0f,-17241.9922f);
CameraPos=VGet(-226880.0f,-140.0f,-16420.0f);
CameraPos2=VGet(8.0f,-162.0f,0.0f);
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
ClearDrawScreen() ;
if( CheckHitKey( KEY_INPUT_UP ) == 1 ){CameraPos.z-=50.0f;}//ズーム
if( CheckHitKey( KEY_INPUT_DOWN ) == 1 ){CameraPos.z+=50.0f;}//ズームアウト
SetCameraPositionAndAngle( CameraPos, CameraPos2.x*DX_PI_F/180.0f, CameraPos2.y*DX_PI_F/180.0f, CameraPos2.z*DX_PI_F/180.0f ) ;
DrawTriangle3D(vec2[0],vec2[1],vec2[2], GetColor(0,255,0),TRUE ) ;
DrawTriangle3D(vec[0],vec[1],vec[2], GetColor(0,0,255),TRUE ) ;
Result=HitCheck_Triangle_Triangle( vec2[0],vec2[1],vec2[2], vec[0],vec[1],vec[2] );
DrawFormatString( 0, 0, GetColor( 255 , 255 , 255 ),"判定結果: %d",Result);
ScreenFlip() ;
}
DxLib_End() ;
return 0 ;
}