void ParticleEmitter::Update(xdl_float dT) { mVisibleParticles = 0; for(xdl_uint i = 0; i < mNumParticles; i++) { if( mParticleArray[i].lifetime > mParticleArray[i].age) { if(mPDynamic) mPDynamic->UpdateParticle(mParticleArray[i],dT); else { // Partikel Dynamik steht nicht zur Verfuegung } UpdateAcceleration(mParticleArray[i]); if(mGravitation) { mParticleArray[i].velocity += ((mGForce + mParticleArray[i].force )*dT)/mParticleArray[i].mass; } continue; } else { if(mPGenerator) mPGenerator->CreateParticle(mParticleArray[i],*this); else { // Partikel Generator steht nicht zur Verfuegung } } } }
void Player::FrameMove(float fElapsedTime) { GetInput(); XMMATRIX mBodyCameraRot = XMMatrixRotationRollPitchYaw(0, m_fYawAngle, 0); XMMATRIX mHeadCameraRot = XMMatrixRotationRollPitchYaw(m_fPitchAngle, 0, 0); mHeadCameraRot.r[3] = XMVectorSet(0.f, 0.6f, 0.f, 1.f); mWorld = mBodyCameraRot * XMMatrixTranslationFromVector(mWorld.Translation()); m_pHead->SetRelativeWorld(mHeadCameraRot); UpdateAcceleration(fElapsedTime); ControllerNode::FrameMove(fElapsedTime); }