Auteur Sujet: Intégration Multijoueur  (Lu 8126 fois)

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Intégration Multijoueur
« le: 20 avril 2012 à 09:40:49 »
Bonjour,

Tout d'abord bravo pour ton plugin très bien fait. Je viens poster ce message car comme le titre l'indique, j'aimerai avoir des informations sur : comment faire pour intégrer le multijoueurs ?
J'ai un serveur local (lammp) et j'aimerai par exemple depuis deux navigateurs différents, pouvoir voir les deux personnages qui se déplacent. Seulement je ne sais pas du tout comment m'y prendre. Car dans ton exemple, ce sont des objets qui bougent et non des avatar. Si tu pouvais m'éclairer sur le sujet  ;D

Merci.

Doud.

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Intégration Multijoueur
« Réponse #1 le: 20 avril 2012 à 09:53:43 »
Bonjour,
Alors... Par où commencer ?!  :-\

Bon, en bref : il n'y a qu'un seul avatar sur la map d'un joueur : le sien.
Les autres joueurs sont considérés comme des objets : ils ne peuvent bouger que via le programme et pas en interaction avec le joueur qui est devant sa map.

Pour les autres joueurs, c'est l'inverse : leur personnage est un avatar et les autres des objets qui sont bougés par le programme.

Le programme va donc récupéré les positions des différents joueurs et les indiqués au plugin.

Est-ce que c'est un peu plus clair comme ça ?!

ps : j'espère que tu nous montreras ton jeu !  ;)

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Re : Intégration Multijoueur
« Réponse #2 le: 20 avril 2012 à 10:01:10 »
Merci de ta rapidité :)
Donc un joueur x qui joue va voir y et z en temps qu'objet mais est-ce que ces y et z sont bougés aléatoirement ou il est possible de prendre la position de y par exemple, de la transmettre à x et ainsi déplacer l'objet y (dans l’écran de x) ? Si c'est le cas, comment le faire ?

ps : si il ne reste pas à l'état de proto pourquoi pas ^^

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Intégration Multijoueur
« Réponse #3 le: 20 avril 2012 à 10:07:26 »
Les positions de tout tes joueurs seront quelque part, soit dans une base, soit dans un fichier, soit en mémoire partagée.
Du coup, chaque joueur peut connaître la position de tout les joueurs et savoir s'il s'agit de lui ou pas.
En asynchrone, il te suffit de regarder ces positions à intervalle régulier et de modifier la position des joueurs sur la carte.
Lorsque un joueur bouge, tu modifie sa position dans la base (ou le fichier ou la mémoire...) et ainsi, les autres joueurs vont le voir bouger.
Après, il faudra optimiser tout ça évidement.
 

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Re : Intégration Multijoueur
« Réponse #4 le: 20 avril 2012 à 10:09:25 »
Et bien je te remercie ^^ je vais essayer tout ça et je te tient au courant.

Merci

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Re : Intégration Multijoueur
« Réponse #5 le: 20 avril 2012 à 15:14:34 »
Comment utiliser onmoveavatar(x,y,mapid) ? Je voudrait que quand on se deplace avec l'avatar, une action s'effectue. Par exemple à chaque case sur laquelle il se déplace, j'actualise une variable.

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Intégration Multijoueur
« Réponse #6 le: 21 avril 2012 à 08:46:37 »
Tu as un exemple fonctionnel sur l'exemple a : http://www.prelude-prod.fr/demo/pp3diso/exemples/exemple-a/

IL faut ajouter ces quelques lignes dans les paramètres du plugin :
onmoveavatar:function(x, y, id) { //------------------ l'avatar bouge
gestion_onmove(x, y, id);
}
C'est donc la fonction gestion_onmove qui sera appelée (tu l'appelles comme tu veux et tu y mets ce que tu veux) avec comme paramètres : la position x, y de l'avatar et l'id de la map en cours.

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Re : Intégration Multijoueur
« Réponse #7 le: 04 mai 2012 à 10:41:46 »
Merci, j'ai testé et cela fonctionne. Une autre question m'es venue à l'esprit. Est-il possible de binder un clique sur un bâtiment d'une autre façon qu'avec onclicbuilding ? en effet je voudrait que selon le bâtiment, il se passe quelque chose. J'aimerai éviter le if dans la fonction onclicbuilding car je vais peupler des map dynamiquement en fonction d'un dictionnaire d'objet.
En gros je cherche à avoir quelque chose du genre ppmap.addBuilding(2, 3, 'images/map-26.png', 0, -50).bindClic(function { instructions });

Merci.

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Intégration Multijoueur
« Réponse #8 le: 04 mai 2012 à 10:44:57 »
Je ne crois pas que ce soit possible dans l'état.
Par contre, rien ne t'interdit de mettre les fonctions dans un array et d'y faire appel en fonction de l'id reçu lors d'un clic sur un bâtiment.
C'est aussi bien que de déclarer une fonction pour chaque bâtiment.

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Re : Intégration Multijoueur
« Réponse #9 le: 04 mai 2012 à 16:59:34 »
D'accord, merci je vais voir comment je vais faire.
Désolé de te harcelé de questions mais quand j'ai une map de taille 5*5 par exemple, elle s'affiche au milieu de ma page et des que je fait un clique glisser sans faire exprès, la map se décale tout en bas à droit et reste bloquée. Sais tu d'où sa vient ?

Merci.

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Intégration Multijoueur
« Réponse #10 le: 04 mai 2012 à 18:13:12 »
Tu ne me harcèles pas, tu poses de bonnes questions  ;)

Le bug de la carte, car c'est un bug, vient d'être mis sur ma liste des bugs à corriger...
Je fais ça dès que je trouve 5 min.

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Re : Intégration Multijoueur
« Réponse #11 le: 11 mai 2012 à 14:15:16 »
D'accord, je te remercie.
En attente d'une autre question de ma part ;)

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Re : Intégration Multijoueur
« Réponse #12 le: 24 mai 2012 à 13:16:04 »
Salut,

Je me demandai si il était possible d'intégrer, s'il ne l'est pas déjà, l'empilement sur l'axe des z, pourvoir placer un objet sur un autre par exemple. Il y a t-il une notion de layers dans ton plugin ?

Merci ;)

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Intégration Multijoueur
« Réponse #13 le: 24 mai 2012 à 13:19:13 »
Non, pas actuellement.
En attendant, il est toujours possible de jouer avec les décalages, mais ce n'est pas optimum.
Affaire à suivre...

Hors ligne doud

  • Néophyte
  • *
  • Messages: 11
  • Karma: +0/-0
Re : Intégration Multijoueur
« Réponse #14 le: 24 mai 2012 à 13:21:54 »
D'acc merci :)