Exemple #1
0
void showGameTime()
{
    char cronometer[10];
    int gameTime = 60 - getGameTime();
    if(gameTime <= 0)
        gameTime = 0;
    sprintf(cronometer, "Time: %d\0", gameTime);

	glMatrixMode(GL_MODELVIEW);
	glPushMatrix();
	glLoadIdentity();

	glMatrixMode(GL_PROJECTION);
	glPushMatrix();
	glLoadIdentity();
    glOrtho(0,3000,0,3000,0,80000);

    glRasterPos2f(2500, 2800);
    for(int i = 0; i < strlen(cronometer); i++)
        glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, cronometer[i]);

    glPopMatrix();

    glMatrixMode(GL_MODELVIEW);
	glPopMatrix();
}
Exemple #2
0
    void Game::frame()
    {
        if( !_initialized )
        {
            // Perform lazy first time initialization
            _initialized = true;
        }

        if( _state == Game::RUNNING )
        {
            // Graphics Rendering.
            render();

            // Update FPS.
            ++_frameCount;
            if( (Game::getGameTime() - _frameLastFPS) >= std::chrono::seconds(1) )
            {
                _frameRate = _frameCount;
                _frameCount = 0;
                _frameLastFPS = getGameTime();
            }
        }
        else if( _state == Game::PAUSED )
        {
            render();
        }
    }
Exemple #3
0
void GameWorld::startCutscene()
{
	state->cutsceneStartTime = getGameTime();
	state->skipCutscene = false;

	if (cutsceneAudio.length() > 0) {
		sound.playMusic(cutsceneAudio);
	}
}
Exemple #4
0
bool GameWorld::isCutsceneDone()
{
	if( state->currentCutscene ) {
		float time = getGameTime() - state->cutsceneStartTime;
		if( state->skipCutscene ) {
			return true;
		}
		return time > state->currentCutscene->tracks.duration;
	}
	return true;
}
Exemple #5
0
void Game::updateOnce()
{
    GP_ASSERT(_animationController);
    GP_ASSERT(_audioController);
    GP_ASSERT(_physicsController);
    GP_ASSERT(_aiController);

    // Update Time.
    static double lastFrameTime = getGameTime();
    double frameTime = getGameTime();
    float elapsedTime = (frameTime - lastFrameTime);
    lastFrameTime = frameTime;

    // Update the internal controllers.
    _animationController->update(elapsedTime);
    _physicsController->update(elapsedTime);
    _aiController->update(elapsedTime);
    _audioController->update(elapsedTime);
    _scriptController->update(elapsedTime);
}
Exemple #6
0
void Game::updateOnce()
{
    GP_ASSERT(_animationController);
    GP_ASSERT(_audioController);
    GP_ASSERT(_physicsController);
    GP_ASSERT(_aiController);

    // Update Time.
    static double lastFrameTime = getGameTime();
    double frameTime = getGameTime();
    float elapsedTime = (frameTime - lastFrameTime);
    lastFrameTime = frameTime;

    // Update the internal controllers.
    _animationController->update(elapsedTime);
    _physicsController->update(elapsedTime);
    _aiController->update(elapsedTime);
    _audioController->update(elapsedTime);
    if (_scriptTarget)
        _scriptTarget->fireScriptEvent<void>(GP_GET_SCRIPT_EVENT(GameScriptTarget, update), elapsedTime);
}
void LuckyLeprechauns::onGameOver(unsigned char winner)
{
	if (winner != player->getPlayerId())
		camera->setLeprechaun(&((PlayerController*)remotePlayers[winner])->getLeprechaun());

	player->BasicComponent::setEnabled(false);
	camera->setViewOnly(true);
	
	gameOver = true;

	gameOverTime.total = getGameTime().total;
	gameOverTime.elapsed = 0.0f;

	((LLGuiManager&)getGuiManager()).setWinner(winner);
}
Exemple #8
0
void GameTimer::frame(){
	static int frameCnt = 0;
	static float t_base = 0.0f;

	frameCnt++;

	// Compute averages over one second period.
	if( (getGameTime() - t_base) >= 1.0f )
	{
		mFps = frameCnt; // fps = frameCnt / 1
		
		// Reset for next average.
		frameCnt = 0;
		t_base  += 1.0f;
	}
}
ConnectMesgServerGameSettings* GameManager::getServerGameSetup()
{
    ConnectMesgServerGameSettings* game_setup 
        = new ConnectMesgServerGameSettings();

    game_setup->setMaxPlayers(gameconfig->maxplayers);
    game_setup->setMaxUnits(gameconfig->maxunits);
    snprintf(game_setup->map_name, 32, "%s", gameconfig->map.c_str());
    game_setup->setCloudCoverage(gameconfig->cloudcoverage);
    game_setup->setWindSpeed(gameconfig->windspeed);
    game_setup->setGameType(gameconfig->gametype);
    game_setup->powerup_state = gameconfig->powerups;
    game_setup->setFragLimit(gameconfig->fraglimit);
    game_setup->setTimeLimit(gameconfig->timelimit);
    game_setup->setElapsedTime(getGameTime());

    return game_setup;
}
Exemple #10
0
void CubeTest::update(float elapsedTime)
{
    // Rotate model
    _scene->findNode("box")->rotateZ(MATH_DEG_TO_RAD((float)elapsedTime / 3000.0f * 180.0f));
    float dscale = 1.0f + .25f*sinf(MATH_DEG_TO_RAD((float)getGameTime() / 200.0f * 180.0f));
    _scene->findNode("box")->setScale(dscale);
    
    Node * camNode = _camera->getNode();
    if( _wDown )
        camNode->translateForward(.2f);
    if( _sDown )
        camNode->translateForward(-.2f);
    
    if( _aDown ) {
        if( _ctrlDown )
            camNode->rotateY(.02f);
        else
            camNode->translateLeft(.2f);
    }
    
    if( _dDown ) {
        if( _ctrlDown )
            camNode->rotateY(-.02f);
        else
            camNode->translateLeft(-.2f);
    }
    if( _rDown ) {
        if( _ctrlDown )
            camNode->rotateX(.02f);
        else
            camNode->translateUp(.2f);
    }
    if( _fDown ) {
        if( _ctrlDown )
            camNode->rotateX(-.02f);
        else
            camNode->translateUp(-.2f);
    }
}
Exemple #11
0
void Game::schedule(float timeOffset, TimeListener* timeListener, void* cookie)
{
    GP_ASSERT(_timeEvents);
    TimeEvent timeEvent(getGameTime() + timeOffset, timeListener, cookie);
    _timeEvents->push(timeEvent);
}
Exemple #12
0
void Game::frame()
{
    if (!_initialized)
    {
        // Perform lazy first time initialization
        initialize();
        if (_scriptTarget)
            _scriptTarget->fireScriptEvent<void>(GP_GET_SCRIPT_EVENT(GameScriptTarget, initialize));
        _initialized = true;

        // Fire first game resize event
        Platform::resizeEventInternal(_width, _height);
    }

	static double lastFrameTime = Game::getGameTime();
	double frameTime = getGameTime();

    // Fire time events to scheduled TimeListeners
    fireTimeEvents(frameTime);

    if (_state == Game::RUNNING)
    {
        GP_ASSERT(_animationController);
        GP_ASSERT(_audioController);
        GP_ASSERT(_physicsController);
        GP_ASSERT(_aiController);

        // Update Time.
        float elapsedTime = (frameTime - lastFrameTime);
        lastFrameTime = frameTime;

        // Update the scheduled and running animations.
        _animationController->update(elapsedTime);

        // Update the physics.
        _physicsController->update(elapsedTime);

        // Update AI.
        _aiController->update(elapsedTime);

        // Update gamepads.
        Gamepad::updateInternal(elapsedTime);

        // Application Update.
        update(elapsedTime);

        // Update forms.
        Form::updateInternal(elapsedTime);

        // Run script update.
        if (_scriptTarget)
            _scriptTarget->fireScriptEvent<void>(GP_GET_SCRIPT_EVENT(GameScriptTarget, update), elapsedTime);

        // Audio Rendering.
        _audioController->update(elapsedTime);

        // Graphics Rendering.
        render(elapsedTime);

        // Run script render.
        if (_scriptTarget)
            _scriptTarget->fireScriptEvent<void>(GP_GET_SCRIPT_EVENT(GameScriptTarget, render), elapsedTime);

        // Update FPS.
        ++_frameCount;
        if ((Game::getGameTime() - _frameLastFPS) >= 1000)
        {
            _frameRate = _frameCount;
            _frameCount = 0;
            _frameLastFPS = getGameTime();
        }
    }
	else if (_state == Game::PAUSED)
    {
        // Update gamepads.
        Gamepad::updateInternal(0);

        // Application Update.
        update(0);

        // Update forms.
        Form::updateInternal(0);

        // Script update.
        if (_scriptTarget)
            _scriptTarget->fireScriptEvent<void>(GP_GET_SCRIPT_EVENT(GameScriptTarget, update), 0);

        // Graphics Rendering.
        render(0);

        // Script render.
        if (_scriptTarget)
            _scriptTarget->fireScriptEvent<void>(GP_GET_SCRIPT_EVENT(GameScriptTarget, render), 0);
    }
}
Exemple #13
0
int main(int argc, char *argv[])
{
    char c;
    int status = 0;
    
    printf("Hello World, I'm game!\n");
    
    status = init_display();
    if (status != 0)
    {
        printf("Error: Failed to init display\n");
        return status;
    }
    
    status = init_driver();
    if (status != 0)
    {
        printf("Error: Failed to init driver\n");
        destroy_display();
        return status;
    }
    
    status = setup_handler();
    if (status != 0)
    {
        printf("Error: Failed to init signal handler\n");
        destroy_display();
        close(file_gamepad_driver);
        return status;
    }
    time_handler();
    
    /* Intializes random number generator */
    srand((unsigned) time(&t));
    
    sigset_t myset;
    (void) sigemptyset(&myset);

    while(1)
    {
        clear_LCD();       
        draw_game();
        draw_score(p1_score, p2_score);
        redraw();
        
        waitForButton();      
        printf("start game\n");
        
        while((p1_score < 5) && (p2_score < 5))
        {
            random_timer = (rand() % 3) + 2;
            startTimer(random_timer);
            waitForTimer();
            
            random_button = (rand() % 4);
            
            draw_button(random_button, true, RED);
            redraw();
            
            gettimeofday(&time_button_appears, NULL);

            // start timer
            startTimer(3);
            buf = 0;
            while((playerButtonPressed(random_button) == 0) && (timer_expired == false))
            {
                waitForButton(); 
            }
            
            stopTimer();
            if (timer_expired == false)
            {
                time_elapsed = getGameTime();
                draw_time(time_elapsed, BLUE);
                redraw();
            }
      
            if (playerButtonPressed(random_button) == P1)
            {
                p1_score++;
                p1_time += time_elapsed;
                
            }
            else if (playerButtonPressed(random_button) == P2)
            {
                p2_score++;    
                p2_time += time_elapsed;
            }
                
            draw_score(p1_score, p2_score);    
            reset_button(random_button);
            redraw();
            
        }
        // draw winner
        button_pressed = 0;
        if (p1_score == 5)
        {
            winner = P1;
            winner_time = p1_time;
        }
        else if (p2_score == 5)
        {
            winner = P2;
            winner_time = p2_time;
        }
        
        while(button_pressed == 0)
        {
            startTimer(1);
            winner_blink(winner, winner_time);
            waitForTimer();
        }
               
        // print waiting
        waitForButton();
        p1_score = 0;
        p1_time = 0;
        p2_score = 0;
        p2_time = 0;
    }

}
Exemple #14
0
void updateState()
{
    if(gameBegins)
    {
        if(walkPressed)
            if(!game_map.checkObstacleCollision(Character::forwards))
                game_map.player.walk(Character::forwards);

        if(backPressed)
            if(!game_map.checkObstacleCollision(Character::backwards))
                game_map.player.walk(Character::backwards);

        if(rotateLeftPressed)
            game_map.player.walk(Character::rotateLeft);

        if(rotateRightPressed)
            game_map.player.walk(Character::rotateRight);

        if(makeCrackPressed)
            game_map.makeCrack();

        if(pushPressed)
            game_map.push(getGameTime());

        if(changeCamera)
        {
            cam.changeCam(game_map.player);
            changeCamera = false;
        }
    }
    else
    {
        if(!cam.isInitialCam())
        {
            initialTime = clock();
            gameBegins = true;
        }
    }

    game_map.moveEnemies();

    if(game_map.isPlayerDead(getGameTime()))
    {
        if(!hasPlayerLost)
            PlaySound("Sounds\\pacman_death.wav", NULL, SND_ASYNC|SND_FILENAME);
        hasPlayerLost = true;
        if(flattener <= 0.0f)
            exit(0);
    }


    if(game_map.playerWon())
    {
        if(!isPlayerWinner)
            PlaySound("Sounds\\10_Wild_Pokemon_Defeated.wav", NULL, SND_ASYNC|SND_FILENAME);
        isPlayerWinner = true;

        if(DiglettHeadBangs > 0)
            DiglettHeadBangs--;
        else
            exit(0);
    }
}