Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Multiplayer::receivePackets()
- {
- sf::Vector2f updateplayerPosition, updatebulletPosition;
- sf::Packet tpacket;
- socket.receive(tpacket);
- bool temp; int i = 0;
- if (tpacket >> temp >> updateplayerPosition.x >> updateplayerPosition.y)
- player2->setPosition(updateplayerPosition);
- else if (tpacket >> updatebulletPosition.x >> updatebulletPosition.y >> i)
- std::cout << "received bullet position\n";
- packet1.clear();
- packet2.clear();
- tpacket.clear();
- }
- void Multiplayer::playersUpdate()
- {
- sf::Vector2f lastplayerPosition = player1->getPosition();
- if (focus)
- player1->update(gameTime.asSeconds());
- if (lastplayerPosition != player1->getPosition())
- {
- bool temp = true;
- packet1 << temp << player1->getPosition().x << player1->getPosition().y;
- socket.send(packet1);
- }
- }
- void Multiplayer::bulletsUpdate()
- {
- sf::Vector2f lastbulletPosition;
- 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()) {
- int i = 1;
- packet2 << vbullets1[0].getPosition().x << vbullets1[0].getPosition().y << i;
- socket.send(packet2);
- std::cout << "send\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;
- }
- void Multiplayer::update()
- {
- gameTime = gameClock.restart();
- playersUpdate();
- bulletsUpdate();
- receivePackets();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement