Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Multijoueur ?  (Lu 8789 fois)

0 Membres et 1 Invité sur ce sujet

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Multijoueur ?
« Réponse #15 le: Décembre 03, 2014, 10:19:09 pm »
// envoi
packet << static_cast<sf::Uint8>(command);

// réception
sf::Uint8 c;
packet >> c;
command = static_cast<CommandCode>(c);
Laurent Gomila - SFML developer

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Multijoueur ?
« Réponse #16 le: Décembre 04, 2014, 11:29:40 am »
sf::Packet& operator >>(sf::Packet& packet, ChatPacket& chatpacket)
{
        sf::Uint32 it;
        packet >> chatpacket.author >> chatpacket.message >> chatpacket.timestamp >> it >> chatpacket.commandarg;
        chatpacket.commandcode = static_cast<CommandCode>(it);
        return packet;
}

Comme ça ? :p

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Multijoueur ?
« Réponse #17 le: Décembre 04, 2014, 01:24:26 pm »
Oui, par contre je ne pense pas que tu aies besoin d'un entier 32-bits pour contenir ton enum.
Laurent Gomila - SFML developer

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Multijoueur ?
« Réponse #18 le: Décembre 04, 2014, 07:30:13 pm »
Merci :)
Et aussi, si je recois plus d'un packet de quelqu'un à la fois (écoute d'un serveur par exemple) je fais comment ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Multijoueur ?
« Réponse #19 le: Décembre 04, 2014, 08:16:35 pm »
Tu ne peux pas recevoir plus d'un paquet à la fois. Ce sera toujours l'un après l'autre.
Laurent Gomila - SFML developer

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Multijoueur ?
« Réponse #20 le: Décembre 05, 2014, 10:41:49 am »
Donc je fais quelque chose comme
"while(packet >> ChatPacket)" pour traiter tout les packets ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Multijoueur ?
« Réponse #21 le: Décembre 05, 2014, 12:29:01 pm »
Non, tu vas recevoir plusieurs paquets, pas extraire plusieurs structures d'un même paquet. Après ça va donc dépendre de la façon dont tu gères la reception de données sur tes sockets.
Laurent Gomila - SFML developer

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Multijoueur ?
« Réponse #22 le: Janvier 06, 2015, 01:16:02 am »
Salut !

Si tu veux un très bon exemple de gestion de serveur multijoueur, je te conseille de regarder ici :
https://github.com/SFML/SFML-Game-Development-Book/tree/master/10_Network

Cherche la classe GameServer

(Dossier Include/Book pour les .hpp et dossier Source pour les .cpp)

C'est le code tiré du livre SFML (que je recommande)


Ici, la connection/déconnection est gérée, la récéption et le retour de la réponse, ... en bref, tout ce qui compose les bases d'un serveur multijoueur :)