Exemple #1
0
  int	updateEntities()
  {
    typename std::list<Type>::iterator	it;
    typename std::list<Type>::iterator	tmp;
    int	id;

    it = _list.begin();
    spawningEnemies();
    while (it != _list.end())
      {
	tmp = it;
	if (move(*it) == false)
	  tmp = _list.erase(it);
	else
	  {
	    shoot(*it);
	    collision(*it);
	    if ((*it)->checkDeath() == true)
	      {
		id = (*it)->getId();
		tmp = _list.erase(it);
		if ((*it)->getType() == SHIP)
		  return (id);
	      }
	  }
	if (tmp != it)
	  it = tmp;
	else
	  ++it;
      }
    return (-1);
  } 
Exemple #2
0
void GameScene::runLogic(float deltaTime, Game& game) {
    if(game.server) {

        // SERVER

        cooldown -= deltaTime;
        enemySpawnCooldown -= deltaTime;
        enemyCooldown -= deltaTime;
        difficulty += deltaTime * 30.0f;

        bgMotion += deltaTime * bgSpeed;
        if(bgMotion > 256.0f)
            bgMotion -= 256.0f;
        bgSprite->setPosition(0.0f, -600.0f + bgMotion);

        shooting(deltaTime, game);
        spawningEnemies(deltaTime, game);
        flyEnemyPlasma(deltaTime, game);

        player.runLogic(deltaTime, game);

        std::string scoreString = std::to_string(score);
        scoreText.setString("Score: " + scoreString);
        scoreText.setFont(*game.font);
        escText.setFont(*game.font);

        std::string scoreString2 = std::to_string(score2);
        scoreText2.setString("Score: " + scoreString2);
        scoreText2.setFont(*game.font);

        sf::Packet packet;
        packet << player.position.x << player.position.y;
        sf::IpAddress clientAddress(game.clientAddress);
        game.socket->send(packet, clientAddress, game.udpPortClient);

    } else {

        // CLIENT

        sf::Packet packet;
        float x, y;
        sf::IpAddress serverAddress(game.serverAddress);
        game.socket->receive(packet, serverAddress, game.udpPortClient);
        if(packet >> x >> y) {
            player.position.x = x;
            player.position.y = y;
        }
    }
}