Auteur Sujet: multi-instanciation / gestion des objets / .min  (Lu 3559 fois)

Hors ligne ChatonRouge

  • Néophyte
  • *
  • Messages: 4
  • Karma: +0/-0
multi-instanciation / gestion des objets / .min
« le: 23 octobre 2012 à 15:12:24 »
Salut !

Félicitations pour cette lib, c'est vraiment un travail considérable, et les applications potentielles ne manquent pas !

Reste 1 ou 2 questions que j'ai, et je serai curieux d'avoir ton avis ^^.

Alors je suis très loin d'etre un gourou JS, mais un pote qui fait son jeu (www.conquest-space.fr, un jeu de stratégie au tour par tour) m'a demandé de travailler sur une carte iso, et j'ai pris pas mal de plaisir a utiliser la bibliothèque pp3Diso. Il y a un mock-up de la carte ici: http://csmap2.olympe.in/ (désolé si le lien est mort dans le futur, je vais pas la garder ici 107 ans  :P).

Les questions que je me pose sont les suivantes:


- .min

Je n'ai pas trouvé de fichier autre que le .min.js en telechargement (j'aurai voulu voir juste le .js), ce qui ne rend pas sa consultation / modification facile. Est-ce une volonté de ta part ?


- Multiples cartes

Sauf erreur de ma part, tu instancies un objet carte (qui s'appelle ici ppmap) dans la div ppISO comme ceci:
ppmap = $('#ppISO').pp3Diso({

/* les options */

}]

Il semble que je ne peux pas instancier une second objet dans une autre div avec le meme code:

ppmap2 = $('#ppISO2').pp3Diso({

/* les options */

}]

La seconde carte ne s'affiche jamais, et la premiere bug un peu. Ou est-ce que je me plante ?
J'ai vu l'option de dev que tu utilises dans l'exemple C, avec une fonction qui met a jour les arguments de la meme instance de pp3Diso pour afficher 2 cartes différentes, mais ce n'ai pas une option qui me conviendrait. Une alternative ?


- La gestion des objets

Enfin ma derniere question concerne les methodes de pp3Diso qui gerent les objets. Mon probleme n'est pas facile a expliquer je vais essayer d'etre clair  :P ...

lorsque je decide de créer un objet, puis de le faire disparaitre
ppmap.addobject( /* les options */);
ppmapkillobject( /* l'id de l'objet a killer */);
tout marche bien. Par contre:

- (pb #1) Si je touche au zoom ensuite, les objets ré-apparaissent.

- (pb #2) Si je decide de les faire ré-apparaitre (sans avoir touché au zoom entre temps) ils ré-apparaissent bien mais la carte plantera la prochaine fois que je voudrai zoomer.

Si tu veux, pour mieux comprendre ce dont je te parle, tu peux aller sur la carte (lien plus haut), dans l'onglet "Filtres" du panneau de droite, et faire apparaitre disparaitre les objets "Attaquables" en utilisant les toggles (Le JS rame un peu ... faut etre un peu patient :/).

Dans ce cas les objets sont des petites croix rouges.

Tu verras que:

- Avant de les faire apparaitre le zoom marche bien.

- Si tu les fais apparaitre puis disparaitre, alors un zoom sur la carte les fera ré-apparaitre.

- Si tu recharges la page, puis que tu les fais apparaitre / disparaitre / ré-apparaitre: le zoom ne marche plus.

Une explication que je pourrais éventuellement suggérer est le fait que je créé deux fois un meme objet (tous les parametres de l'objet, notament l' ID, lorsque je le fais ré-apparaitre sont identiques a ce qu'ils étaient lors de sa premiere création) ...


- Batiment vs objet

Enfin je me demandais si il y avait une différence fondamentale (en particulier pour les performances du JS) entre un objet et un building. Pour ce qui est de leur fonctionnalités sur la carte j'ai bien compris la différence, mais je me pose la question au niveau du JavaScript.


Bon ... reste que cette library est tres bonne, merci pour ton travail !

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : multi-instanciation / gestion des objets / .min
« Réponse #1 le: 23 octobre 2012 à 16:58:44 »
Hello,
Alors, pour commencer, bravo pour ta carte, c'est la première fois que je vois (enfin) un travail vraiment sympa fait avec ce plugin. Ça laisse penser que ce plugin est une bonne chose et que j'ai bien fait de le faire ;)

Allons-y pas à pas :
 - le .min.js : en effet, la version non minifiée n'est pas disponible. C'est volontaire et les raisons sont trop longues à expliquer ici. Dans la majeure partie des cas, cela n'est pas nécessaire. Après, c'est une question de confiance quant à la durée de vie du plugin. Mais bon, ça fait quand même un bail que je bosse dans les jeux en ligne, y'a pas de raison que j'arrête demain. Si vraiment les sources ont nécessaires, il est toujours possible d'en discuter.

 - Multi-cartes : en effet, je n'avais pas du tout prévu ce cas. Mais, à priori, ce ne sera pas jouable pour des raisons de performances. Néanmoins, je vais me poser sur ce problème histoire de voir si je peux le résoudre simplement (ce dois être le cas). Je le note donc dans les améliorations futures.
 En gros, je pense que le problème vient de problème d'ID qui ne sont pas instanciés en fonction de la carte. Il suffirait d'ajouter un numero d'instance devant par exemple.

 - pour les objets, je vais regarder ça de plus près. J'ai bien l'impression que tu es tombé sur un bug ;)

 - Enfin, la différence bâtiments / Objets... La rapidité... Je pense que c'est similaire en terme de rapidité. Les 2 étant traités plus ou moins de la même façon au final. Si c'était à refaire, je remplacerais certainement les bâtiments par plusieurs couches d'objets. Cela obligerais juste à fournir une seconde carte, celle des zones accessibles ou non. Mais ce serait plus simple pour tout le monde.

Bon,tout ça me fait penser que cela fait bien longtemps que je n'ai pas mis le nez dans ce plugin et qu'il est grand temps de s'y replonger.
Je vais donc de ce pas me replonger dedans pour finaliser les diverses modifications que l'on m'avait déjà demandé ;)
Encore bravo, à toi aussi, pour ta carte, très jolie !

Hors ligne ChatonRouge

  • Néophyte
  • *
  • Messages: 4
  • Karma: +0/-0
Re : multi-instanciation / gestion des objets / .min
« Réponse #2 le: 23 octobre 2012 à 18:03:52 »
Merci pour ces réponses hyper claires, et pour ta réactivité  :o

Pas de probleme pour le .js indisponible. C'etait plus par curiosité que je demandais je ne me sens pas les compétences pour y toucher de toute facon. Par contre je suis tombé completement par hasard sur le fait que l'argument [bulle] d'un objet pouvait etre affiché, et il a fallut que je creuse avec FireBug pour trouver le selecteur css correspondant et pourvoir jouer avec afin de les afficher / masquer (slider "coordonnées" du panneau de droite). Je suppose qu'il y en a d'autres ([title], par exemple ... et peut-etre d'autres encore :D), je suggerai éventuellement de les ajouter a la doc, qui est par ailleurs assez bien faite ;).

Pour les multiples instances de la carte, je posais aussi la question par curiosité. Ma carte rame deja pas mal, je ne me vois pas en ajouter une autre, meme plus simple.

Enfin pour le bug (?), en ce qui me concerne je vais y remedier en jouant sur le css, et non plus en killant / addant des objets. je supposais que killer les objets aiderait en fluidité, mais peut-etre pas, apres tout.

Merci encore pour ton feedback !

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : multi-instanciation / gestion des objets / .min
« Réponse #3 le: 23 octobre 2012 à 20:36:42 »
Citer
je suggerai éventuellement de les ajouter a la doc, qui est par ailleurs assez bien faite

Que en voilà une très bonne idée !
Je note ça et dès que je trouve 5 min, je le fais ;)

Parce que, en effet, y'a pas mal de trucs à faire au niveau des CSS.
Merci pour ton retour.

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : multi-instanciation / gestion des objets / .min
« Réponse #4 le: 04 novembre 2012 à 12:33:37 »
J'ai modifié le plugin :
 - correction du bug concernant le zoom est les objets
 - ajout de la documentation concernant les CSS

Au passage, quelques optimisations et le le plugin vient de perdre quelques octets ;)

Hors ligne ChatonRouge

  • Néophyte
  • *
  • Messages: 4
  • Karma: +0/-0
Re : multi-instanciation / gestion des objets / .min
« Réponse #5 le: 08 novembre 2012 à 19:43:50 »
Cool, je te remercie!

Je vais tester des que j'ai un moment.

Cela dit, malheureusement, mon pote admin et moi avions pris la decision de retire la carte du jeu, car bien trop gourmande en ressources JS avec le nombre de joueurs a gérer. Peut-etre que la nouvelle version le sera moins?

Par contre il est prévu que j'utilise le plugin pour faire la représentation de la base des joueurs, a défaut de la carte stratégique.

Je te tiens au jus!