Exemplo n.º 1
0
void ViewSFML::output() {
  if (!simulation) {
    throw std::runtime_error("No Simulation was set for this View.");
  }

  frameTimer.sync();

  /* NOTE: to get better perfomance for drawing only create  the
   * Graphical objets once and update their state here.
   */
  // clear-draw-display cycle

  // clear background
  window.clear(sf::Color::Black);

  // draw Arena
  drawArena(window);

  // draw all players
  for (auto const &player : simulation->getPlayers()) {
    drawPlayer(window, player.first, player.second);
  }
  // draw all projectiles
  for (auto const &projectile : simulation->getProjectiles()) {
    drawProjectile(window, projectile);
  }
  // draw UI
  drawUI(window);

  window.display();
}
Exemplo n.º 2
0
void advanceGame(void* gameMemory, OOGameInput* input, OOGameOutput* output) {
    cbgame * game = (cbgame*) gameMemory;
    oofloat respawnTime = 2.f;
    if(game->p1.score == CombatGame_ScoreLimit)
    {
        //Player 1 wins
    }
    else if (game->p2.score == CombatGame_ScoreLimit)
    {
        //Player 2 Wins
    }
    
    if(!game->p1.alive && game->time >= game->p1.timeOfDeath + respawnTime)
    {
        respawnPlayer(game, &game->p1);
    }
    else if (!game->p2.alive && game->time >= game->p2.timeOfDeath + respawnTime)
    {
        respawnPlayer(game, &game->p2);
    }
    game->input = input;
    game->output = output;
    
    if( !game->initialised ) {
        initGame(game);
    }
    
    game->moveDelta = game->p1.x;
    updateGame(game);
    game->moveDelta -= game->p1.x;
    
    clearScreen(game);
    moveWall(game);
    drawPlayer(game, &game->p2);
    drawPlayer(game, &game->p1);
    drawArena(game);
    

    if(game->p1.missile.isFiring)
    {
        drawMissile(game,&game->p1);
    }
    if(game->p2.missile.isFiring)
    {
        drawMissile(game,&game->p2);
    }
    
    
    game->time += game->input->dt;
}