Forums Développement Multimédia

Aller au contenu

isometrique3d pathfinding on mouse click deplacement bug

CODE

5 réponses à ce sujet

#1 3rdlife

    Ceinture Blanche

  • Members
  • Pip
  • 3 messages

Posté 03 April 2012 - 00:58 AM

Salut a tous!

je suis un debutant avec un peu de bagage ici et la en programmation.
voila alors j'ai lu plusieurs tutos et des livres j'ai voulu essayer de monter un petit jeu isometrique3d avec un pathfinding Astar alogrithme.
Jusqu'ici contrairement a d'autres sur le net ca bien ete pour l'algorithme Astar j'ai lu un tutoriel ici et l'algorithme sur wikipedia et j'ai pu reussir a le faire marcher et comprendre parfaitement.

voila maintenant la ou je suis perdu c'est comment faire marcher mon personnage sur l'isometrique, comment le faire suivre le chemin trouver. a date ca bouge vraiment mal alors j'esperais que vous pourriez m'aider a comprendre et avancer dans mon projet je sais qu'il existe plein de libraries comme asolip et le 2disometric engine mais je vx juste utiliser mes trucs a moi car je veux comprendre et tout faire par moi meme. j'ai lu et suivi les tutoriels d'un livre advancedactionscriptanimation ce livre explique vraiment bien aussi l'isometrique donc voila je vous joint les fichiers du projet esperant quelqu un aurait la bonte de m'aider . merci.


https://www.yousendi...0R0Z6RTk3czlVag

et regarder le comportement

https://www.yousendi...0R0ZoMlhOUjhUQw



je ne sais vraiment plus trop quoi faire. si vous pouvez faire un tuto ou me diriger vers un truc de meme qui pourrais m'aider a comprendre ce serait apprecier un morceau de code qui sait merci.

-Si quelqu'un voudrait s'associer et ou a inclure un debutant voulant apprendre dans un projet pareil vous etes la bienvenu. moi je dis Chapeau a tous ceux qui on reussi a faire un jeu en isometrique car je l'admet plus on avance plus on voit que ce n'est pas du beurre

#2 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 03 April 2012 - 13:49 PM

Salut,

Tout dépend comment est structuré le programme, mais logiquement l'ISO c'est de la 2D ayant subit une transformation (en général rotation de 45° et diminution de la hauteur par deux).

Partant de ce principe tous les déplacements, calculs de collisions, pathfinding, etc... se font sur une grille 2D (ou tableau à deux dimensions si tu préféres), seul l'affichage final est géré en ISO.

Il faut donc que tu commence par faire ton jeu en 2D à plat pour voir si tout marche bien dans une grille simple.
Puis, une fois que tout fonctionne, il faut t'attaquer à la partie "affichage" final en ISO, pour celà il te faudra passer par une série de transformations pour passer les coordonnées trouvées en 2D à plat en coordonnées sur ton plateau ISO.

Pour résumer, tous les calculs sont fait en 2D à plat, le résultat des calculs est affiché en ISO.
La seule chose à prendre en compte si tu tente d'aller un peu plus loin c'est la gestion des "niveaux" de tes sprites, par exemple lorsque le joueur passe derrière un sprite ISO (comme un mur), le mur doit masquer la partie du joueur qui se trouve derrière le mur, mais là ça dépend si tu utilise des Sprites, des MovieClips, ou si tu te sert de Bitmaps pour tracer directement le résultat...

Voilà, c'est une piste de travail, c'est du moins comme ça que j'aurais commencé à penser à la chose, bien séparer les calculs (grille 2D) et l'affichage final (ISO).

#3 3rdlife

    Ceinture Blanche

  • Members
  • Pip
  • 3 messages

Posté 03 April 2012 - 14:53 PM

@
Monsieur Spi merci de ta reponse mais as tu vue mon projet ? si oui quoi tu que je suis passe de la mauvaise maniere? une chose que j ai oublie de mentionne c'est que j'ai teste mon astar pathfinding class sur le 2d disons sans transformation isometrique ca marche donc je me disais que c'etait peut etre quelquechose que j'avais omis ou un mauvais calcul mais bon. merci pour ta demarche elle me parait a priori super bien, mais je comprend qd meme assez bien la technique de transformation isometrique c'est juste le deplacement ...regardes mes liens si tu px regardes le swf ou meme tout le projet tu verras qu'une bonne partie est deja faite certes comme j ai dit j'ai suivi les tutos du livre que j'ai mentionne si haut.

#4 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 03 April 2012 - 15:45 PM

Citation

as tu vue mon projet ?

Non, je suis en CS3 et ton projet est fait sur une version supérieure, ça me donne pas plus envie que ça d'aller fouiller.
D'autre part tu utilise un moteur (tuto ou autre) en POO, qui mélange des commentaires en français et en anglais et des méthodes différentes... ce qui me fait penser que tu n'as pas écrit ce code mais que tu l'as récupéré d'un tuto et que tu essayes de l'adapter à tes besoins.

Personnellement je n'aime pas partir avec des bouts de libs tout prêts quand je veux m'amuser à faire un jeu pour apprendre ou simplement jouer, le fun étant de trouver les solutions par moi même en m'aidant des algos et infos trouvés à droite à gauche. Lorsque j'ai bien compris tout le processus, car je l'ai entièrement réécrit depuis le départ, là je peux me coller à des libs toutes prêtes dont je comprend enfin le fonctionnement.

Par exemple quand tu dis :

Citation

mais je comprend qd meme assez bien la technique de transformation isometrique c'est juste le deplacement

Ben j'aurais tendance à dire qu'en fait non, tu ne la comprend pas si bien ;-)
La preuve, si ton perso est capable de se déplacer en 2D en suivant le chemin trouvé par le Astar mais qu'une fois en Iso il fait n'importe quoi, c'est que tu as un problème lié à la conversion des coordonnées 2D en coordonnées ISO, donc dans la technique de transformation en ISO, tu vois ce que je veux dire ?

Citation

une bonne partie est deja faite certes comme j ai dit j'ai suivi les tutos du livre que j'ai mentionne

Mon conseil serait d'essayer de refaire le tout par toi même, c'est la seule manière d'être sur d'avoir compris le fonctionnement, si tu es capable de le refaire en te posant les bonnes questions c'est que tu maîtrise le process, sinon c'est que tu as certainement raté un truc.

Commence par créer une grille 2D (tableau) et l'afficher.
Créer un personnage 2D que tu pose sur cette grille.
Ajoute quelques murs et implémente ton Astar, puis teste le.

Si le résultat est cohérent, commence à gérer le déplacement de ton joueur (toujours sur la grille 2D) avec collisions etc...
Une fois que le tout fonctionne et que tu maîtrise bien cette base tu peux commencer à réfléchir à la méthode pour passer d'un affichage 2D à plat à un affichage ISO.

#5 3rdlife

    Ceinture Blanche

  • Members
  • Pip
  • 3 messages

Posté 05 April 2012 - 02:49 AM

Voir le messageMonsieur Spi, le 03 April 2012 - 15:45 PM, dit :

Non, je suis en CS3 et ton projet est fait sur une version supérieure, ça me donne pas plus envie que ça d'aller fouiller.
D'autre part tu utilise un moteur (tuto ou autre) en POO, qui mélange des commentaires en français et en anglais et des méthodes différentes... ce qui me fait penser que tu n'as pas écrit ce code mais que tu l'as récupéré d'un tuto et que tu essayes de l'adapter à tes besoins.

Personnellement je n'aime pas partir avec des bouts de libs tout prêts quand je veux m'amuser à faire un jeu pour apprendre ou simplement jouer, le fun étant de trouver les solutions par moi même en m'aidant des algos et infos trouvés à droite à gauche. Lorsque j'ai bien compris tout le processus, car je l'ai entièrement réécrit depuis le départ, là je peux me coller à des libs toutes prêtes dont je comprend enfin le fonctionnement.

Par exemple quand tu dis :



Ben j'aurais tendance à dire qu'en fait non, tu ne la comprend pas si bien ;-)
La preuve, si ton perso est capable de se déplacer en 2D en suivant le chemin trouvé par le Astar mais qu'une fois en Iso il fait n'importe quoi, c'est que tu as un problème lié à la conversion des coordonnées 2D en coordonnées ISO, donc dans la technique de transformation en ISO, tu vois ce que je veux dire ?



Mon conseil serait d'essayer de refaire le tout par toi même, c'est la seule manière d'être sur d'avoir compris le fonctionnement, si tu es capable de le refaire en te posant les bonnes questions c'est que tu maîtrise le process, sinon c'est que tu as certainement raté un truc.

Commence par créer une grille 2D (tableau) et l'afficher.
Créer un personnage 2D que tu pose sur cette grille.
Ajoute quelques murs et implémente ton Astar, puis teste le.

Si le résultat est cohérent, commence à gérer le déplacement de ton joueur (toujours sur la grille 2D) avec collisions etc...
Une fois que le tout fonctionne et que tu maîtrise bien cette base tu peux commencer à réfléchir à la méthode pour passer d'un affichage 2D à plat à un affichage ISO.


ok je vais recommencer a suivant ta demarche.. je n'avais utiliser aucune lib prefait comme j 'ai dit je suivais un livre qui l'a bien explique eh biensur le code etait la aussi je l'ai integrer a ma maniere mais je sais que je comprend l'iso mais bref merci de me decourager pour le moment lol...merci d'avoir repondu c'est sympa..

#6 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 05 April 2012 - 09:46 AM

Salut,

Je ne cherches pas à te décourager, au contraire, je te recommande de bien tout revoir dans le détail tout simplement ;-)
Ou alors cible bien ton problème et balance nous le petit bout de code qui te semble problématique et on y jettera un oeil, mais pas tout le projet en nous demandant de fouiller ;-)



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)