Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Multiplayer::receivePackets()
- {
- sf::Vector2f updateplayerPosition, updatebulletPosition;
- sf::Packet packet;
- int type;
- socket.receive(packet);
- if (packet >> type)
- switch (type)
- {
- case static_cast<int>(PacketType::playerPos):
- {
- if (packet >> updateplayerPosition.x >> updateplayerPosition.y)
- player2->setPosition(updateplayerPosition);
- break;
- }
- case static_cast<int>(PacketType::bulletPos):
- {
- if (packet >> updatebulletPosition.x >> updatebulletPosition.y)
- std::cout << "bullet position have been received\n";
- break;
- }
- }
- packet.clear();
- }
- void Multiplayer::playersUpdate()
- {
- sf::Vector2f lastplayerPosition = player1->getPosition();
- packetType1 = PacketType::playerPos;
- if (focus)
- player1->update(gameTime.asSeconds());
- if (lastplayerPosition != player1->getPosition())
- {
- packet1 << static_cast<int>(packetType1) << player1->getPosition().x << player1->getPosition().y;
- socket.send(packet1);
- }
- }
- void Multiplayer::bulletsUpdate()
- {
- sf::Vector2f lastbulletPosition;
- packetType2 = PacketType::bulletPos;
- if (focus)
- if (!isBullet)
- if (player1->isAttacking()) {
- Bullet tbullet1(100.f), tbullet2(100.f);
- tbullet1.setPosition(player1->getCenter()), tbullet2.setPosition(player2->getCenter());
- tbullet1.setVelocity(normalizeMousePosition());
- vbullets1.push_back(tbullet1);
- vbullets2.push_back(tbullet2);
- isBullet = true;
- }
- lastbulletPosition = (vbullets1.size() ? vbullets1[0].getPosition() : sf::Vector2f(0, 0));
- for (size_t i = 0; i < vbullets1.size(); i++)
- vbullets1[i].update(gameTime.asSeconds());
- if (isBullet)
- if (lastbulletPosition != vbullets1[0].getPosition()) {
- packet2 << static_cast<int>(packetType2) << vbullets1[0].getPosition().x << vbullets1[0].getPosition().y;
- socket.send(packet2);
- std::cout << "bullet position has been sent\n";
- }
- for (size_t i = 0; i < vbullets1.size(); i++)
- if (collision->checkCollision(vbullets1[0], *gameTexture))
- vbullets1.erase(vbullets1.begin() + i);
- for (size_t i = 0; i < vbullets2.size(); i++)
- if (collision->checkCollision(vbullets2[0], *gameTexture))
- vbullets2.erase(vbullets2.begin() + i);
- if (vbullets1.size() < 1)
- isBullet = false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement