ページ 11

Effekseerのエフェクトが描画できない・・・

Posted: 2014年3月21日(金) 12:41
by プラム
僕はDXライブラリでゲームを作っています。なぜか画像を描画ししっかりそのための処理をしていると思うのですが描画できません。
コード

コード:


// エフェクトの描画
void DrawEffect(void){
  
    EffHandle = EffManager->Play(Effect[1],1.0f,1.0f,1.0f);

    DrawGraph(0, 0, GHandle, TRUE);
 	
    RenderVertex();

    EffManager->AddLocation( EffHandle, ::Effekseer::Vector3D( pla[1].Shot[i].Pos.x, pla[1].Shot[i].Pos.y, pla[1].Shot[i].Pos.z ) ); 
    
    EffManager->Update();
     
    EffRenderer->BeginRendering();
 
    EffManager->Draw();
  
    EffRenderer->EndRendering();
}
void ShotUp( ){
					MV1_COLL_RESULT_POLY_DIM HitDim ;			
	for( i = 0 ; i< 1000 ; i++){
		if(pla[1].Shot[i].State==1){
			if(VSize(pla[1].Pos)+1200>VSize(pla[1].Shot[i].Pos)&&VSize(pla[1].Pos)-1200<VSize(pla[1].Shot[i].Pos)){
			pla[1].Shot[i].Pos=VAdd(pla[1].Shot[i].MoveVec,pla[1].Shot[i].Pos);


	HitDim = MV1CollCheck_Sphere( stg[1].ModelHandle, -1, pla[1].Shot[i].Pos, 10.0f ) ;

		
	DrawEffect();

				//	DrawBillboard3D( pla[1].Shot[i].Pos, 0.5f, 0.5f, 30.0f, VSize(pla[1].Shot[i].Pos), GHandle, TRUE ) ;

//DrawSphere3D( pla[1].Shot[i].Pos, 10.0f, 32, GetColor( 255,0,0 ), GetColor( 255, 255, 255 ), TRUE ) ;
		
	if(HitDim.HitNum>=1){
		pla[1].Shot[i].State=0;
		
	}
	
        MV1CollResultPolyDimTerminate( HitDim ) ;


	}else{
				pla[1].Shot[i].State=0;
			}
		}
	} 
}
という感じです
実行結果↓
スクリーンショット008.png
わかる人、回答お願いします。

Re: Effekseerのエフェクトが描画できない・・・

Posted: 2014年3月21日(金) 17:21
by ISLe
Effekseerに関係するコードはこれがすべてですか?

Effekseerに対して変換行列を設定する必要があるらしいのですが、該当するコードはあるのでしょうか。

Re: Effekseerのエフェクトが描画できない・・・

Posted: 2014年3月21日(金) 18:48
by プラム
ISleさん>>ありがとうございました。
ごめんなさい、残りのコードを貼り忘れてました。

コード:


void EffectInit(void){
 
    // 描画用インスタンスの生成
    EffRenderer = ::EffekseerRendererDX9::Renderer::Create( (LPDIRECT3DDEVICE9)GetUseDirect3DDevice9(), 30000 );
    
    // エフェクト管理用インスタンスの生成
    EffManager = ::Effekseer::Manager::Create( 3000 );
 
    // 描画用インスタンスから描画機能を設定
    EffManager->SetSpriteRenderer( EffRenderer->CreateSpriteRenderer() );
    EffManager->SetRibbonRenderer( EffRenderer->CreateRibbonRenderer() );
    EffManager->SetRingRenderer( EffRenderer->CreateRingRenderer() );
    EffManager->SetModelRenderer( EffRenderer->CreateModelRenderer() );
    EffManager->SetTextureLoader( EffRenderer->CreateTextureLoader() );
    EffManager->SetModelLoader( EffRenderer->CreateModelLoader() );
    EffManager->SetCoordinateSystem( ::Effekseer::COORDINATE_SYSTEM_LH );
 
    // エフェクトの読込
    Effect[1] = Effekseer::Effect::Create( EffManager, (const EFK_CHAR*)L"data/Eff/Shot.efk" ); 

}
がまだ書いてないコードです。

Re: Effekseerのエフェクトが描画できない・・・

Posted: 2014年3月21日(金) 22:19
by ISLe
こちらに書いてある内容を参考に変換行列を設定するコードを追加してみてください。
http://seesaawiki.jp/w/boxer_programmer ... 4%A4%A4%C6

Re: Effekseerのエフェクトが描画できない・・・

Posted: 2014年3月24日(月) 15:07
by プラム
そのコードを追加したところ描画できました。
ありがとうございました。