Ejemplo n.º 1
0
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;
    }
}
Ejemplo n.º 2
0
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;
    }
}