以下のように RenderVertex を pyro の操作をする前に呼んでみてください
//...
//render texture before the particle.
//this texture should be on top
//of particles.
//but is under particles.
DxLib::DrawGraph(100,100,gHandle,1);
DxLib::RenderVertex(); // ←←←これです
g_pEmitters->Render(Time);
g_pEmitters->RemoveInactive(Time, 0.1f);
//if draw two graph,then is looks like
//no problem.
//DxLib::DrawGraph(100,200,gHandle2,1);
DxLib::RefreshDxLibDirect3DSetting();
DxLib::ScreenFlip();
DXライブラリは高速描画の為に、DrawGraph をしても直ぐに描画せずに、
テクスチャが変更されたり描画ブレンドモードが変更されたりしたときに
一度に描画するようになっているので pyro のようなDXライブラリが感知できない
描画処理が入ってしまうと描画順番が意図しないものになってしまうというわけです。
例:
DrawGraph( 0, 0, PlayerGraph, TRUE ) ; // stock0
DrawGraph( 10, 0, PlayerGraph, TRUE ) ; // stock1
DrawGraph( 20, 0, PlayerGraph, TRUE ) ; // stock2
DrawGraph( 30, 0, PlayerGraph, TRUE ) ; // stock3
DrawGraph( 40, 0, PlayerGraph, TRUE ) ; // stock4
DrawGraph( 50, 0, PlayerGraph, TRUE ) ; // stock5
DrawGraph( 60, 0, PlayerGraph, TRUE ) ; // stock6
DrawGraph( 70, 0, EnemyGraph, TRUE ) ; // ( Draw stock0〜6 ) stock0
DrawGraph( 80, 0, EnemyGraph, TRUE ) ; // stock1
DrawGraph( 90, 0, PlayerGraph, TRUE ) ; // ( Draw stock0〜1 ) stock0
DrawGraph( 100, 0, PlayerGraph, TRUE ) ; // stock1
DrawGraph( 110, 0, PlayerGraph, TRUE ) ; // stock2
DrawGraph( 120, 0, PlayerGraph, TRUE ) ; // stock3
g_pEmitters->Render( Time ) ; // Draw pyro
DrawGraph( 130, 0, PlayerGraph, TRUE ) ; // stock4
DrawGraph( 140, 0, PlayerGraph, TRUE ) ; // stock5
DrawGraph( 150, 0, PlayerGraph, TRUE ) ; // stock6
DrawGraph( 160, 0, PlayerGraph, TRUE ) ; // stock7
ScreenFlip(); // ( Draw stock0〜7 )
なので、その「遅延描画」を以下の関数で強制的に描画することができます。
// 頂点バッファに溜まった頂点データを描画する
int RenderVertex( void ) ;
例:
DrawGraph( 90, 0, PlayerGraph, TRUE ) ; // stock0
DrawGraph( 100, 0, PlayerGraph, TRUE ) ; // stock1
DrawGraph( 110, 0, PlayerGraph, TRUE ) ; // stock2
DrawGraph( 120, 0, PlayerGraph, TRUE ) ; // stock3
RenderVertex() ; // Draw stock0〜3
g_pEmitters->Render( Time ) ; // Draw pyro
DrawGraph( 130, 0, PlayerGraph, TRUE ) ; // stock0
DrawGraph( 140, 0, PlayerGraph, TRUE ) ; // stock1
ScreenFlip(); // ( Draw stock0〜1 )
よろしければお試しください m(_ _)m