J'ai trouver comment faire des "bouttons" cliquable après 48h de fouille intensive j’attendais que quelqu'un écrivent quelque chose pour pouvoir donnée la solution :
Tout d'abord pour réussir j'ai exploiter ce que japperait un défaut de propriété de la souris.
En effet lorsque vous cliquer sur l'écran la souris vous déplace en courant a la coordonnée saisie, et en plus valide / actionne un evenement sur la meme case.
A partir de la j'ai construit le raisonnement suivant :
Bon si je cherche une condition "valider" => ne marche pas.
Bon si je cherche une condition ce déplacer dans la zone => ne marche pas.
Donc j'ai fait autrement voici un screen explicatif :
Spoiler (cliquez pour afficher)
Ceci c'est la base du fonctionnement, au debut je voulais mettre si il y as contact avec les event alors choix de langue.
Cependant cela ammenait des abération du style, meme en cliquant a coté comme il y avait contact a cause du pathfinding le choix était valider, du coup ce n’était pas précis et dégueulasse.
Donc j'ai passer mes evenement en sous le héros et leur activation ce fait par action du joueur, j'en reviens a la propriété de la souris deplacement + validation sur la meme case !
preuve :
Spoiler (cliquez pour afficher)
Maintenant j'ai deux zone fonctionnelle bien définie qui fonctionne que lorsque que je clique dans ces zones.
Nouveau problème, une espèce de latence ce fait ressentir (oui le temps que le perso traverse l’écran en fait)
je me suis donc dit, je vais essayer de récupéré les coordonné de clic et faire teleporter le héros ... Impossible, ou en tout cas j'ai pas trouver.
Du coup j'ai passer la fréquence et les déplacement du héros au max afin de reduire ce lag.
Aujourd'hui en partant du milieu et en cliquant sur les bord au plus rapide j'ai un "lag" de 0.13~0.23 sec et au max en partant du plus loin d'un coter au plus loin de l'autre coter quelque chose de l'ordre du 0.70 sec.
Ce qui reste très acceptable, mais je peut encore réduire ce "lag"
J'ai donc entourer toutes la zone pour restraindres les mouvements inutiles :
Spoiler (cliquez pour afficher)
Voila maintenant le système marche, il faut l'habiller, j'affiche par dessus tout ça une belle image noir, et mes icones représentant les zones de clique et je les place correctement.
Ont sait que la résolution est de 816 px x 624, ont sait aussi que les case messure 48 px x 48 px.
Du coup j'ai simplement compter les cases :
ma zone cliquable fait 5 case de large pour 4 de haut soit : 240 px sur 192 px
J'ai donc dessiner mes bouton sur paint. avec les bonnes dimention, puis je les ai importer dans mon projet.
Mais il reste encore a les placer, j'ai fait la meme chose ma premiere zone ce trouve par rapport a l'origine haut gauche a 5 case en bas et 1 case a droite.
ce qui donne 48 px en X et 192 px en Y.
J'ai fait la meme pour l'autre : 528 Px en X et 192 px en Y.
Résultat :
Spoiler (cliquez pour afficher)
je me retrouve donc avec 2 zone cliquable, ont ne vois pas tout le bordel derriere et encore mieux c'est sensible au pixel pret ! Le "lag" a été réduit au maximum a 0.55 sec ce qui reste très acceptable.
Sinon c'est clairement du bidouillage, mais au moins ça marche.
Maintenant prochain objectif un menu principale en clique ...
|