void GameScreen::updateInputGameOver()
{
    for (std::vector<TouchEvent>::iterator itr = m_touchEvents.begin(); itr != m_touchEvents.end(); itr++)
    {
        touchToWorld((*itr));

        switch (itr->getTouchType())
        {
        case DOWN:
            return;
        case DRAGGED:
            continue;
        case UP:
            if (m_gameOverDialog->isTouchingRightButton(*m_touchPoint))
            {
                init();
                onResume();
            }
            else if (m_pausedDialog->isTouchingLeftButton(*m_touchPoint))
            {
                m_iScreenState = SCREEN_STATE_EXIT;
            }
            return;
        }
    }
}
Example #2
0
void GameScreen::updateInputGameOver(std::vector<TouchEvent> &touchEvents)
{
    for (std::vector<TouchEvent>::iterator itr = touchEvents.begin(); itr != touchEvents.end(); itr++)
	{
		touchToWorld((*itr));
		
		switch (itr->getTouchType())
		{
            case DOWN:
                continue;
            case DRAGGED:
                continue;
            case UP:
                if(OverlapTester::isPointInRectangle(*m_touchPoint, m_okButton->getBounds()))
                {
                    init();
                }
                else if(OverlapTester::isPointInRectangle(*m_touchPoint, m_leaderboardsButton->getBounds()))
                {
                    // Show leaderboards
                    m_iScreenState = 4;
                }
                return;
		}
	}
}
Example #3
0
void GameScreen::updateInputRunning(std::vector<TouchEvent> &touchEvents)
{
    for (std::vector<TouchEvent>::iterator itr = touchEvents.begin(); itr != touchEvents.end(); itr++)
	{
		touchToWorld((*itr));
		
		switch (itr->getTouchType())
		{
            case DOWN:
                m_world->handleTouchUp(*itr);
                continue;
            case DRAGGED:
                continue;
            case UP:
                // Nothing
                return;
		}
	}
}
void GameScreen::updateInputRunning()
{
    for (std::vector<TouchEvent>::iterator itr = m_touchEvents.begin(); itr != m_touchEvents.end(); itr++)
    {
        touchToWorld((*itr));

        switch (itr->getTouchType())
        {
        case DOWN:
            if (m_backgroundElements->isUpgradeSellMenuShowing())
            {
                if (m_backgroundElements->isTouchInTowerSelectionMenuArea(*m_touchPoint))
                {
                    handleTouchDownInUpgradeSellMenu();
                }
                else
                {
                    m_backgroundElements->setUpgradeSellMenuShowing(false);
                    m_touchCursor->setVisibility(false);
                }
            }
            else
            {
                // handle the user selecting a tower
                if (m_backgroundElements->isTouchInTowerSelectionMenuArea(*m_touchPoint))
                {
                    int selectedTowerCost;
                    if ((selectedTowerCost = m_backgroundElements->handleTouchDownInTowerSelectionMenu(*m_touchPoint)) > 0)
                    {
                        setAdjustFundsText(selectedTowerCost, false);
                    }
                }
            }
            continue;
        case DRAGGED:
            if (m_backgroundElements->isUpgradeSellMenuShowing())
            {
                if (m_backgroundElements->isTouchInTowerSelectionMenuArea(*m_touchPoint))
                {
                    handleTouchDownInUpgradeSellMenu();
                }
            }
            else
            {
                if (m_backgroundElements->isTowerSelected())
                {
                    m_backgroundElements->setSelectedTowerPosition(*m_touchPoint);
                    World::getInstance()->updateTowerCursor(m_backgroundElements->getSelectedTowerCursor());
                }
            }
            continue;
        case UP:
            if (m_backgroundElements->isUpgradeSellMenuShowing())
            {
                if (m_backgroundElements->isTouchInTowerSelectionMenuArea(*m_touchPoint))
                {
                    handleTouchUpInUpgradeSellMenu();
                }
            }
            else
            {
                if (m_backgroundElements->isTowerSelected())
                {
                    if (World::getInstance()->placeTower(m_backgroundElements->getSelectedTowerCursor()))
                    {
                        m_iFunds -= TowerCostMapper::getCostForTowerType(m_backgroundElements->getSelectedTowerCursor().getTowerType());
                        updateFundsTextAndTowerCursors();
                        m_backgroundElements->reset();
                    }

                    m_adjustFundsText->setText("");
                    m_backgroundElements->reset();
                }
                else
                {
                    updateAndHandleTouchCursor();

                    if (m_touchCursor->isTowerLockAcquired())
                    {
                        m_backgroundElements->setUpgradeSellMenuShowing(true);
                        adjustUpgradeTowerButtonColor();
                        adjustUpgradeSellTexts();
                    }
                    else
                    {
                        if (World::getInstance()->handleTouchUp(*m_touchPoint))
                        {
                            waveCompleted();
                            waveSpawned();
                        }
                        else if (m_timeButton->isTouching(*m_touchPoint))
                        {
                            if (m_timeButton->handleTouch(*m_touchPoint))
                            {
                                onPause();
                            }
                        }
                    }
                }
            }
            return;
        }
    }
}