예제 #1
0
		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
					}
				}
			}
		}
예제 #2
0
파일: Player.cpp 프로젝트: galek/RathEngine
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);
}