Messagerie


lacewing

fredetmumu
1384 messages

dimanche 3 février 2019 à 03:35
hello a tous,
dans le mfa joint, j'ai deux petits soucis:
le premier c'est que j'essaie de recuperer les données envoyées de plusieurs actifs a travers une boucle mais ça ne fontionne pas, seule la recuperation 1 subchannel a la fois fonctionne, pourtant pour l'envoi ça marche bien avec une boucle (ce sera plus explicite si vous regarder le MFA)
le deuxieme est que je me demande comment faire pour que un actif PRESENT EN DEBUT DE SCENE, si sa position change, que ça se transmette automatiquement dans les autres programme lancés sans avoir a créer un deuxieme actif a qui on lui donne les coordonnées du permier
dans mon exemple en pressant o et p on fait bouger le rond, est il possible de modifier simplement sa position dans une deuxieme instance ouverte
merci de votre aide
Tazador
89 messages
Fusion 2.5
Exporteur Android Exporteur HTML5
lundi 4 février 2019 à 12:54
Je ne pense pas que tu puisses combiner une boucle avec un event de type "on binary message received". J'ai aucune preuve de ce que j'avance mais ça me semble un peu contre-intuitif. Ces events sont reçus un peu à la volée, ça me semble bizarre de vouloir les ordonner dans une boucle. Je pense savoir ce que tu essaies de faire, tu veux transmettre les coordonnées des projectiles aux autres joueurs c'est ça ? Mais tu sais pas combien il va en tirer et comme la boucle ne marche pas, tu te retrouves à devoir écrire chaque subchannel un par un. Mais étant donné que tu transmets l'id de ton projectile quand tu blast ses coordonnées, qu'est-ce qui t'empêche de tout blaster sur le channel 10 en fait et d'écouter uniquement les messages que tu reçois sur le channel 10 pour mettre à jour les positions des bullets ?
Sinon à mon avis, change ton fonctionnement pour le tir. Au lieu de transmettre chaque position de projectile à chaque frame (ce qui, soit dit en passant, est très gourmand niveau bande passante et devrait être évité), transmets plutôt aux autres joueurs juste le fait que tu as tiré en indiquant la direction de ton shoot et les coordonnées du départ de la bullet ainsi que sa vitesse et laisse chaque client reproduire la logique de déplacement des bullets.

Pour ton deuxième point, j'avoue ne pas avoir trop compris ce que tu essaies de faire. Pourquoi ne pas simplement dédier un channel à cet objet et bouger ses coordonnées en fonction de ce que tu envoies et reçois sur ce channel ?
fredetmumu
1384 messages

lundi 4 février 2019 à 15:29
merci!
c'est vrai que c'est plutot gourmand, mais je n'avais pas pensé a tout envoyer su un seul subchannel, pour moi la logique etait de dedié un subchannel par objet
en fait cet exemple est fait avec un projectil mais dans mon vrai programme ce sont pas forcement des projectiles,plutot des ennemis ou des objets quelquonques qui se deplacent, cela dit j'ai compris pourquoi la boucle en reception ne fontionne pas, merci, et je vais essayer de tout blaster d'un coup sur un seul channel et tout recevoir d'un coup aussi, j'espere que ce sera plus rapide de un subchannel a la fois.

concernant mon deuxieme point, tu as bien  bien compris, en fait cet objet est present en debut de scene, dans mon programme il se deplace aleatoirement et c'est la le souci, du coup je lance le premier exe et il part a droite par exemple, je lance le deuxieme et celui ci part a gauche du coup le premier envoie ses cooronnées au dexieme qui renvoie ses corrdonnées au premier etc... et ça fonctionne pas

j'ai fini par trouver un moyen en faisant comme d'habitude mais sur android ca ralenti un peu (car beaucoup de ces memes actifs)

EDIT:
effectivement vu que j'utilise les id, il n'est pas utile de envoyer sur diferent channel, merci! et c'est bien plus rapide!
Modifié le lundi 4 février 2019 à 15:53 par fredetmumu
Tazador
89 messages
Fusion 2.5
Exporteur Android Exporteur HTML5
mardi 5 février 2019 à 00:13
Si tu veux faire de l’aléatoire il va falloir soit le faire via le serveur et le transmettre à tous les peers, soit choisir un peer (la fonction Channel master est bien pratique pour ça) et lui faire gérer cette logique d’aléatoire pour qu’il la transmette ensuite aux autres peers. Si tu as une autre solution n’hésite pas à partager ;)
fredetmumu
1384 messages

mardi 5 février 2019 à 09:20
j'aurais bien aimé etudier ta deuxieme solution!
moi j'ai fait un truc peu logique j'imagine!
en fait, il y a deux joueurs qui se balladent dans une map et qui peuvent se retrouver au meme endroit , point important ce sont des cartes fixes (deplacement comme dans goof troop a l'epoque, un peu comme zelda)
du coup soit on est le premier arrivé a un ecran donné,soit on est le deuxieme alors j'affiche uniquement les "ennemis au deplacement aleatoire" du premier arrivé.

si tu as un petit exemple avec le channel master ça me semble bien plus indiqué!!!
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 9 visiteurs au total

Derniers messages