Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1006 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Qt 4.7.4 : Aide complémentaire création serveur de jeu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Qt 4.7.4 : Aide complémentaire création serveur de jeu

n°2108800
sam5872
Posté le 30-10-2011 à 18:38:28  profilanswer
 

Bonsoir bonsoir !
 
Etant étudiant en dernière année d'informatique de gestion, nous devons faire un projet en c++.
En gros, il consistera en un run and gun à la metal slug avec une prise en charge du réseau.
 
N'ayant jamais codé de serveur ,eh bien,je suis un peu dérouté  :D [:nobody-home] !
 
Pour info on utilise : SFML & Qt.
 
J'aimerais quelques précisions quant aux envois d'actions vers le serveur.
Je me suis inspiré du chat proposé sur le site du zéro pour débuter. Autant l'envoi de string c'est encore passable , autant l'envoi d'action je sèche.
 
Première chose , est-ce bien l'action d'appui sur une touche que l'on envoie au serveur ?
Bref, ce genre de code : App.GetInput().IsKeyDown(sf::Key::Right))
 
Merci d'avance
 

mood
Publicité
Posté le 30-10-2011 à 18:38:28  profilanswer
 

n°2112484
Terminapor
I'll see you rise.
Posté le 20-11-2011 à 15:07:27  profilanswer
 

Nope, envois plutôt des informations moins précieuse que si l'envois échou ça foute pas bordel, et aussi fais ta connection en UDP plutôt que TCP.
 
Tu envois via sf::packet les informations, par exemple le numéro 1 sera "mettre à jour x & y" et un ID par client.
 
a chaque fois qu'un client se connecte, le serveur lui attribut un numéro, et le stocke dans une pile (dans ce cas je prendrais un vector<string> qui contient les addresses IP des clients, mais je pense qu'une map serait plus justifié) et le client s'en sert lorsqu'il renvoit les informations
 
Du coups (pour le traitement des messages côté serveur ) :

Code :
  1. sf::uint8 message_code;
  2. sf::uint8 id;
  3. p>>message_code>>id;
  4. if (message_code==1)
  5. {
  6. int x,y;
  7. p>>x>>y;
  8. // Ici tu mets à jour les coordonnés x&y du bon client
  9. // On prépare le nouveau packet à envoyer
  10. sf::packet toSend;
  11. toSend<<(sf::uint8)1<<id<<x<<y;
  12. // On renvoit à tous les autre clients :
  13. for (unsigned char i=0;i<clientList.size();i++)
  14. {
  15.   if (i!=id)
  16.   SocketUDP.Send(toSend,clientList.at(i));
  17. }
  18. }


 
Et côté client (p est le packet reçu) :  
 

Code :
  1. sf::uint8 message_code;
  2. sf::uint8 clientID;
  3. p>>message_code>>clientID;
  4. if (message_code==1)
  5. {
  6. int x,y;
  7. p>>x>>y;
  8. // Tu mets à jour le bon personnage, tu connais le numéro du client à mettre à jour
  9. }


 
Et à chaque fin de boucle du jeu, tu envois les informations x & y, avec ton clientID et ton code "1" pour dire "mettre à jour x&y"
 
J'espère que c'est pas trop flou :D


---------------
Perhaps you don't deserve to breathe
n°2112687
ghizouy
Posté le 22-11-2011 à 00:16:54  profilanswer
 

bonsoir
cette année j'étudie ce langage mais malheureusement  j'ai un  retard d'un  mois  je me sens que je suis null par rapport a mes camarads de classe par ce que ils sont trop avancé  pouvez vous m'aides (avec un professeur qui explique a la vitesse de la lumiére )
Bonne fin de soirée

n°2112919
Terminapor
I'll see you rise.
Posté le 23-11-2011 à 11:00:16  profilanswer
 

Ben google, tu cherches les tutos de base en C++ (si c'est bien ça que tu veux apprendre :??:), manipulation des types de variables (int,float,double,char), références & pointeurs, la librairie std (std::cout pour afficher sur la console, cin pour demander une valeur par exemple), bref t'as une tonne de tutos, tu peux y arriver par toi-même [:bank]


---------------
Perhaps you don't deserve to breathe

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Qt 4.7.4 : Aide complémentaire création serveur de jeu

 

Sujets relatifs
[Qt][Windows] Installation des modules QtMobilityPython + Qt + OpenCV = problème :/
Aide sur la mise en page d'un site (HTML/CSS)Creation d'un site web, le protéger à 99%
Création d'un livre d'or en PHP : problème de débutant...[Aide]Commande Visual Basic Express
besoin d'aideAide pour Exo
[Web] Serveur vers client 
Plus de sujets relatifs à : Qt 4.7.4 : Aide complémentaire création serveur de jeu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR