void GameScreen::update(float deltaTime) { for (std::vector<TouchEvent>::iterator itr = m_touchEvents.begin(); itr != m_touchEvents.end(); itr++) { if (m_touchEventsPool.size() < 50) { m_touchEventsPool.push_back(*itr); } } m_touchEvents.clear(); m_touchEvents.swap(m_touchEventsBuffer); m_touchEventsBuffer.clear(); m_backgroundElements->update(deltaTime); switch (m_gameState) { case RUNNING: updateRunning(deltaTime * m_timeButton->getSpeedScalar()); updateInputRunning(); if (World::getInstance()->getScoredEarnedThisFrame() > 0) { addToScore(World::getInstance()->getScoredEarnedThisFrame()); } if (World::getInstance()->getTimesCoreShipModuleHitThisFrame() > 0) { for (int i = 0; i < World::getInstance()->getTimesCoreShipModuleHitThisFrame(); i++) { coreShipModuleHit(); } } break; case PAUSED: updateInputPaused(); break; case GAME_OVER: updateInputGameOver(); break; } }
void GameScreen::update(float deltaTime, std::vector<TouchEvent> &touchEvents) { m_world->update(deltaTime); switch (m_gameState) { case WAITING: updateWaiting(deltaTime); updateInputWaiting(touchEvents); break; case GAME_OVER: updateGameOver(deltaTime); updateInputGameOver(touchEvents); break; case RUNNING: default: m_fTitleAlpha -= deltaTime * 2; updateRunning(deltaTime); updateInputRunning(touchEvents); break; } }