/***************************************************************/ // // DirectX [config.cpp] // Author kazuki tanaka // Date 2016 05/30 /*--------------------------------------------------------------- ■Update : 2016/06/19 config.cppの作成 /*--------------------------------------------------------------- インクルードファイル ---------------------------------------------------------------*/ #include "main.h" #include #include #include "config.h" #include "player.h" #include "field.h" /*--------------------------------------------------------------- マクロ定義 ---------------------------------------------------------------*/ /*--------------------------------------------------------------- 定数定義 ---------------------------------------------------------------*/ /*--------------------------------------------------------------- プロトタイプ宣言 ---------------------------------------------------------------*/ /*---------------------------------------------------------------- グローバル変数 ----------------------------------------------------------------*/ //オブジェクトのあたり判定 bool objectConfig( ){ float objectX; float objectY; float objectBX; float objectBY; VECTOR_2D vec; VECTOR_2D objVec; vec = GetPlayerPos( ); objectY = GetFieldPos( ); if(objectY+1 > vec.sy && objectY-1 < vec.sy ){ return true; } if( vec.sy + 400 > 500.0f ) { return true; } /* // basic当たり判定 if( (vec.sx < objVec.sx && objVec.sx < vec.ex) && (vec.sy < objVec.sy < vec.ey) ){ } if( (vec.sx < objVec.ex && objVec.sx < vec.ex) && (vec.sy < objVec.sy < vec.ey) ){ } if( (vec.sx < objVec.sx && objVec.sx < vec.ex) && (vec.sy < objVec.ey < vec.ey) ){ } if( (vec.sx < objVec.ex && objVec.sx < vec.ex) && (vec.sy < objVec.ey < vec.ey) ){ } */ //通り抜け処理 /* //← for( int inc=vec.prevX ; inc < vec.sx ;inc++ ){ if( objVec.sx < vec.prevX && vec.prevX < objVec.ex ){ vec.sx = objVec.sx+1; vec.ex = objVec.ex+1; break; } } //→ for( int inc=vec.prevX ; inc < vec.ex ;inc++ ){ if( objVec.sx < vec.prevX && vec.prevX < objVec.ex ){ vec.sx = objVec.sx-1; vec.ex = objVec.ex-1; break; } } //↓ for( int inc=vec.prevY ; inc < vec.sy ;inc++ ){ if( objVec.sy < vec.prevX && vec.prevY < objVec.ey ){ vec.sy = objVec.sy-1; vec.ey = objVec.ey-1; break; } } //↑ for( int inc=vec.prevY ; inc < vec.ey ;inc++ ){ if( objVec.sy < vec.prevX && vec.prevY < objVec.ey ){ vec.sy = objVec.sy-1; vec.ey = objVec.ey-1; break; } } */ return false; } // 球体とのあたり判定 bool CubeConfig( VECTOR_2D vec, float cx, float cy , float r ) { float distance; //距離 // 球とプリミティブの距離測定 distance = sqrt( ((cx-vec.sx)*(cx-vec.sx)) + ((cy-vec.sy)*(cy-vec.sy)) ); // 判定 if( r >= distance ){ return true; //接している } else{ return false; //接していない } }