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); }
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; } } }