//------------------------------------------------------------------------------- // @ Game::Update() //------------------------------------------------------------------------------- // Main update loop //------------------------------------------------------------------------------- void Game::UpdateObjects( float dt ) { // set up triangle translation IvVector3 xlate; xlate.Zero(); if (IvGame::mGame->mEventHandler->IsKeyDown('k')) { xlate -= 3.0f*dt*IvVector3::xAxis; } if (IvGame::mGame->mEventHandler->IsKeyDown('i')) { xlate += 3.0f*dt*IvVector3::xAxis; } if (IvGame::mGame->mEventHandler->IsKeyDown('l')) { xlate -= 3.0f*dt*IvVector3::yAxis; } if (IvGame::mGame->mEventHandler->IsKeyDown('j')) { xlate += 3.0f*dt*IvVector3::yAxis; } mPosition += xlate; // clear transforms if (IvGame::mGame->mEventHandler->IsKeyDown(' ')) { mPosition.Set( 0.0f, -0.5f, 0.0f ); } } // End of Game::Update()
//------------------------------------------------------------------------------- // @ Player::Update() //------------------------------------------------------------------------------- // Main update loop //------------------------------------------------------------------------------- void Player::Update( float dt ) { // get scale, rotate, translate for this frame float s = 1.0f; float r = 0.0f; // set up scaling if (IvGame::mGame->mEventHandler->IsKeyDown(';')) { s -= 0.25f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('p')) { s += 0.25f*dt; } mScale *= s; // set up rotate if (IvGame::mGame->mEventHandler->IsKeyDown('o')) { r -= kPI*0.25f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('u')) { r += kPI*0.25f*dt; } IvMatrix33 rotate; rotate.RotationZ(r); mRotate = rotate*mRotate; // set up translation IvVector3 xlate; xlate.Zero(); if (IvGame::mGame->mEventHandler->IsKeyDown('k')) { xlate.x -= 3.0f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('i')) { xlate.x += 3.0f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('l')) { xlate.y -= 3.0f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('j')) { xlate.y += 3.0f*dt; } mTranslate += xlate; // clear transform if (IvGame::mGame->mEventHandler->IsKeyDown(' ')) { mRotate.Identity(); mScale = 1.0f; mTranslate.Zero(); } } // End of Player::Update()
//------------------------------------------------------------------------------- // @ IvQuat::GetAxisAngle() //------------------------------------------------------------------------------- // Get axis-angle based on quaternion //------------------------------------------------------------------------------- void IvQuat::GetAxisAngle( IvVector3& axis, float& angle ) { angle = 2.0f*acosf( w ); float length = ::IvSqrt( 1.0f - w*w ); if ( ::IsZero(length) ) axis.Zero(); else { length = 1.0f/length; axis.Set( x*length, y*length, z*length ); } } // End of IvQuat::GetAxisAngle()
//------------------------------------------------------------------------------- // @ Player::Update() //------------------------------------------------------------------------------- // Main update loop //------------------------------------------------------------------------------- void Player::Update( float dt ) { // get scale, rotate, translate for this frame float s = 1.0f; float r = 0.0f; // set up scaling if (IvGame::mGame->mEventHandler->IsKeyDown(';')) { s -= 0.25f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('p')) { s += 0.25f*dt; } mScale *= s; // set up rotate if (IvGame::mGame->mEventHandler->IsKeyDown('o')) { r -= kPI*0.25f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('u')) { r += kPI*0.25f*dt; } IvMatrix33 rotate; rotate.RotationZ(r); mRotate = rotate*mRotate; // set up translation IvVector3 xlate; xlate.Zero(); if (IvGame::mGame->mEventHandler->IsKeyDown('k')) { xlate.x -= 3.0f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('i')) { xlate.x += 3.0f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('l')) { xlate.y -= 3.0f*dt; } if (IvGame::mGame->mEventHandler->IsKeyDown('j')) { xlate.y += 3.0f*dt; } mTranslate += xlate; // clear transform if (IvGame::mGame->mEventHandler->IsKeyPressed(' ')) { mRotate.Identity(); mScale = 1.0f; mTranslate.Zero(); } // change texture if (IvGame::mGame->mEventHandler->IsKeyPressed('t')) { mCurrentBlendTexIndex = (mCurrentBlendTexIndex + 1) % NUM_BLEND_TEX; } // change blending mode if (IvGame::mGame->mEventHandler->IsKeyPressed('b')) { mBlendMode = (BlendMode)((mBlendMode + 1) % kBlendModeCount); } } // End of Player::Update()