Bonjour à toutes et à tous.
Comme tout amateur de jeux vidéos qui se respecte, je me suis penché sur la création de jeux et la programmation, il y a un petit moment déjà ... et je suis tombé la tête la première dans ce domaine passionant, comme beaucoup d'autres (vous vous reconnaissez ?).
Aujourd'hui, on peut dire que j'ai une assez bonne expérience en programmation : j'ai déjà monté ou participé à plusieurs projets qui ont plus ou moins aboutis et je maitrise des langages tel que le C et le C++ qui sont mes favoris et avec lesquelles j'ai beaucoup travaillé, surtout le C.
J'ai découvert Game Maker, un logiciel d'une puissance et d'une simplicité d'utilisation plus qu'étonnante, à mon avis le meilleur dans son domaine, à savoir la création de jeux 2D. Inutile de vous dire qu'il m'a été impossible de ne pas utiliser Game Maker pour mon nouveau projet, un jeux d'action en ligne. Je ne voudrais pas m'éterniser sur le sujet et de toute façon il me faudrait un post entier pour vous présenter mon idée, alors je vous passe les détails sur le jeu et préfère me concentrer sur l'essentiel. Sachez seulement qu'il s'appelle Escrime Game et qu'il devrait être disponible sur le web d'ici peu.
Entrons dans le vif du sujet: je poste ici pour la première fois (eh oui, encore un nouveau) car je rencontre un problème ... comment dire ? ... assez bizarre:
Je veux ouvrir une connexion avec la fonction
mplay_init_tcpip(). Pas de problème, seulement il faut tester si elle a réussie en vérifiant si la valeur retournée par
mplay_connect_status() est bien 2, soit "connexion TCP/IP" (selon
http://gamemaker.info/fr/manual/413_01_connection ). J'affiche un message d'erreur dans le cas contraire, et tant que la connexion n'a pas été effectuée je redemande l'adresse IP du serveur et je réessaye de me connecter. Voici mon code :
- Code:
-
do
{
ip = get_string("Entrez l'addresse IP du serveur :", "127.0.0.1") //On récupère l'adresse ip
mplay_init_tcpip(ip) //On tente de se connecter
statutConnexion = mplay_connect_status() //On récupère le statut de la connexion
if (statutConnexion != 2) //Si il est différent de 2, c'est qu'il y a une erreur
{
show_message("Echec de la connexion au serveur") //Dans ce cas on affiche un message
}
}
until (statutConnexion != 2) //Tant qu'il y a erreur on recommence
Vous pouvez tester le code et vous verrez si ca marche ou pas mais là n'est pas la question, le fait est que chez moi, ca ne marche pas, ne me demandez pas pourquoi, je n'en sais rien pour l'instant. Je penche pour un problème externe au programme genre pare feu qui bloque ou je ne sais quoi ... mais ça je suis sûr qu'une personne attentionnée passant par là aura l'amabilité de m'aider, du moins je l'espère.
Ca c'est le premier probleme, le second, plus bizarre, c'est que quand je teste le programme, il me demande à chaque fois l'IP du serveur ... une boucle infinie quoi. La vous allez me dire: c'est normal ! Tu dis : tant qu'il y a erreur, on redemande l'adresse et on tente de se connecter ! Game Maker fait simplement ce que tu lui demandes ! Sauf que vous oubliez un détail: en cas d'erreur le programme devrait m'afficher un message, et je peux vous assurer que chez moi, quand je teste, pas l'ombre d'un bout de message d'erreur n'apparait !
Ca veut dire qu'à cette ligne:
- Code:
-
if (statutConnexion != 2) //Si il est différent de 2, c'est qu'il y a une erreur
{
show_message("Echec de la connexion au serveur")
vu que rien ne s'affiche, la variable
statutConnexion est FORCEMENT égale à 2.
Et ici, comble du paradoxe:
- Code:
-
}
until (statutConnexion != 2) //Tant qu'il y a erreur on recommence
Le même test, E-X-A-C-T-E-M-E-NT le même test, la variable
statutConnexion est égale à 2, on le sait, on vient de le démontrer, rien ne s'est passé entre ces deux lignes, à part peut être l'intervention du saint esprit qui se demandait qui il pouvait bien faire c h i e r aujourd'hui (évidement c'est tombé sur moi
) et le programme boucle la dessus p u t a i n ... pour lui le test est ... vrai ... Et la variable
statutConnexion, tu te rappelles ? On avait pas dit qu'elle était égale à deux juste avant ? Bah nan mon gars, moi j'en ai rien f o u t r e de ta variable à deux balles (d'ailleurs tu sais ou tu peux te la mettre).
S'il vous plaît ! Dites moi que ce scénario ne peut pas être vrai ! Désolé pour le petit écart mais il est tard et ce problème m'a vraiment usé, vous vous en doutez. Du coup je vous ai fait un joli post bien écrit, je suis en vacances, j'ai donc pu me permettre un petit pavé plutôt inutile maintenant que j'y réfléchi, à part peut-être pour me faire travailler mon francais mais sinon voilà. Si quelqu'un pourai (zut! j'avais fait un sans-fautes jusque là, et c'est le cas de le dire ...) m'aider ou me donner une piste si il en a le temps ce serai super sympa, merci d'avance à mon sauveur à lunettes
PS: J'ai espacé les gros mots pour qu'ils passent le filtre. Je sais, c'est pas bien, je suis méchant, je choque les plus jeunes ... mais bon les plus jeunes, ils ont rien à faire là et je trouve le texte moins expressif sans, comme amputé d'un membre important, à savoir le troisieme doigt de la main en partant du pouce. Nan et puis par nature je déteste la censure.