- 私信
|
发表时间 : 2011-9-27 10:37:42
|
浏览 : 1759 评论 : 8
功能:
1.取得导弹位置,并产生特效
2.综合了几个特效,形成爆炸时的综合效果- void postObjFX()
- {
- //m_hitfxData
- CString sObjName;
- sObjName.Format("%d",m_eventData.tID); // 导弹物体名称
- vpObject* pObj=NULL;
- pObj=vpObject::find(sObjName);
- if(pObj)
- {
- double x,y,z;
- pObj->getPosition(&x,&y,&z);
- vpFxExplosion2* pFxExplosion2_testFX1 = new vpFxExplosion2();
- pFxExplosion2_testFX1->setName( "testFX1" );
- pFxExplosion2_testFX1->setCullMask( 0x0FFFFFFFF );
- pFxExplosion2_testFX1->setRenderMask( 0x0FFFFFFFF );
- pFxExplosion2_testFX1->setIsectMask( 0x0FFFFFFFF );
- pFxExplosion2_testFX1->setStrategyEnable( true );
- pFxExplosion2_testFX1->setTranslate(x,y,z);
- pFxExplosion2_testFX1->setRotate( 0 , 0 , 0 );
- pFxExplosion2_testFX1->setScale( 20.5 , 20.5 , 20.5 );
- pFxExplosion2_testFX1->setStaticEnable( false );
- pFxExplosion2_testFX1->setEnable( true );
- pFxExplosion2_testFX1->setRepeatEnable( false );
- pFxExplosion2_testFX1->setOverallColor( 1.000000f , 1.000000f , 1.000000f , 1.000000f );
- pFxExplosion2_testFX1->setTextureBlendColor( 1.000000f , 1.000000f , 1.000000f , 1.000000f );
- pFxExplosion2_testFX1->setTextureMode( vpFx::TEXTURE_MODE_MODULATE );
- pFxExplosion2_testFX1->setTextureFile( "explosion2.rgba" );
- pFxExplosion2_testFX1->setOverallDuration( 5.000000f );
- pFxExplosion2_testFX1->setFadeDuration( 0.000000f , 0.000000f );
- pFxExplosion2_testFX1->setTransparencyDepthOffset( 0.000000f );
- pFxExplosion2_testFX1->setTransparencyDepthRadiusScaler( 0.000000f );
- pFxExplosion2_testFX1->setDepthWriteEnable( false );
- pFxExplosion2_testFX1->setWindSource( vpFxParticleSystem::WIND_SOURCE_TABLE );
- if(!pFxExplosion2_testFX1->isConfigured())
- pFxExplosion2_testFX1->configure();
- vpFxFire* pFxFire_testFX2 = new vpFxFire();
- pFxFire_testFX2->setName( "testFX2" );
- pFxFire_testFX2->setCullMask( 0x0FFFFFFFF );
- pFxFire_testFX2->setRenderMask( 0x0FFFFFFFF );
- pFxFire_testFX2->setIsectMask( 0x0FFFFFFFF );
- pFxFire_testFX2->setStrategyEnable( true );
- pFxFire_testFX2->setTranslate(x,y,z);
- pFxFire_testFX2->setRotate( 0 , 0 , 0 );
- pFxFire_testFX2->setScale( 3 , 3 , 3 );
- pFxFire_testFX2->setStaticEnable( false );
- pFxFire_testFX2->setEnable( true );
- pFxFire_testFX2->setRepeatEnable( true );
- pFxFire_testFX2->setOverallColor( 1.000000f , 1.000000f , 1.000000f , 0.500000f );
- pFxFire_testFX2->setTextureBlendColor( 1.000000f , 1.000000f , 1.000000f , 1.000000f );
- pFxFire_testFX2->setTextureMode( vpFx::TEXTURE_MODE_MODULATE );
- pFxFire_testFX2->setTextureFile( "fire.rgba" );
- pFxFire_testFX2->setOverallDuration( 1000000000.000000f );
- pFxFire_testFX2->setFadeDuration( 0.000000f , 10.000000f );
- pFxFire_testFX2->setTransparencyDepthOffset( 0.000000f );
- pFxFire_testFX2->setTransparencyDepthRadiusScaler( 0.000000f );
- pFxFire_testFX2->setDepthWriteEnable( false );
- pFxFire_testFX2->setWindSource( vpFxParticleSystem::WIND_SOURCE_TABLE );
- if(!pFxFire_testFX2->isConfigured())
- pFxFire_testFX2->configure();
- vpFxSmoke* pFxSmoke_testFX3 = new vpFxSmoke();
- pFxSmoke_testFX3->setName( "testFX3" );
- pFxSmoke_testFX3->setCullMask( 0x0FFFFFFFF );
- pFxSmoke_testFX3->setRenderMask( 0x0FFFFFFFF );
- pFxSmoke_testFX3->setIsectMask( 0x0FFFFFFFF );
- pFxSmoke_testFX3->setStrategyEnable( true );
- pFxSmoke_testFX3->setTranslate(x,y,z );
- pFxSmoke_testFX3->setRotate( 0 , 0 , 0 );
- pFxSmoke_testFX3->setScale( 10 , 10 , 10 );
- pFxSmoke_testFX3->setStaticEnable( false );
- pFxSmoke_testFX3->setEnable( true );
- pFxSmoke_testFX3->setRepeatEnable( true );
- pFxSmoke_testFX3->setOverallColor( 1.000000f , 1.000000f , 1.000000f , 1.000000f );
- pFxSmoke_testFX3->setTextureBlendColor( 1.000000f , 1.000000f , 1.000000f , 1.000000f );
- pFxSmoke_testFX3->setTextureMode( vpFx::TEXTURE_MODE_MODULATE );
- pFxSmoke_testFX3->setTextureFile( "smoke.inta" );
- pFxSmoke_testFX3->setOverallDuration( 1000000000.000000f );
- pFxSmoke_testFX3->setFadeDuration( 0.000000f , 30.000000f );
- pFxSmoke_testFX3->setTransparencyDepthOffset( 0.000000f );
- pFxSmoke_testFX3->setTransparencyDepthRadiusScaler( 0.000000f );
- pFxSmoke_testFX3->setDepthWriteEnable( false );
- pFxSmoke_testFX3->setWindSource( vpFxParticleSystem::WIND_SOURCE_TABLE );
- if(!pFxSmoke_testFX3->isConfigured())
- pFxSmoke_testFX3->configure();
- vpScene* pScene=*vpScene::begin();
- ASSERT(pScene);
- pScene->addChild( pFxExplosion2_testFX1);
- pScene->addChild( pFxFire_testFX2);
- pScene->addChild( pFxSmoke_testFX3);
- pObj->setRenderMask( 0x00000000 );
- }
- }
复制代码 |
|