JeuWeb - Crée ton jeu par navigateur
Déplacement d'un personnage à la souris - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Déplacement d'un personnage à la souris (/showthread.php?tid=5313)

Pages : 1 2


Déplacement d'un personnage à la souris - djidi - 21-03-2011

Bonsoir,

Actuellement, sur mon jeu, les déplacements du personnage se font au clavier (ce qui est très simple à gérer).
Cependant, j'aimerais voir s'il est possible de changer ce déplacement pour un déplacement à la souris.

Malheureusement... j'ai aucune idée de comment faire cela.
Le point qui me gène concerne la définition du chemin : comment déterminer que le personnage passera par telles ou telles cases et en évitera d'autres ?

La map que j'ai créé est une simple map en 2D.

Encore une fois, merci d'avance ^^


RE: Déplacement d'un personnage à la souris - Kihmé - 21-03-2011

pour calculer le chemin, rien de plus simple. Il te suffit d'utiliser un algorithme de calcul du chemin le plus court : Algorithme de Dijkstra

Avec un peu de réflexion tu réussiras à le faire dans ton code. Je l'avais fait pour une application en java pour calculer le chemin le plus court entre deux points. Si tu veux, chacune de tes cases est un point et si deux cases se touchent il y a entre elles un chemin.

Tu pourras ainsi prendre en compte les cases où il n'est pas possible de passer, décors, eau, personnages.

Tu récupéreras ainsi ton itinéraire. Je peux voir si j'ai toujours ma version java, ça pourrait t'être utile.


RE: Déplacement d'un personnage à la souris - niahoo - 21-03-2011

pour des cases, A* serait plus approprié que dijkstra je crois.

là doc est là http://www.policyalmanac.org/games/aStarTutorial.htm


RE: Déplacement d'un personnage à la souris - php_addict - 22-03-2011

pour les 2 algorithmes de recherche de chemins proposés plus haut, si ta map est trop grande et trop complexe et si tu utilises php ca va être l'enfer...php n'est pas adapté pour cela


RE: Déplacement d'un personnage à la souris - Kihmé - 22-03-2011

(21-03-2011, 09:43 PM)niahoo a écrit : pour des cases, A* serait plus approprié que dijkstra je crois.

là doc est là http://www.policyalmanac.org/games/aStarTutorial.htm

tiens je connaissais pas, je vais lire ça.

Php_addict, dis moi, en quoi ça va être l'enfer en php? Enfin, en quoi c'est plus compliqué que dans un autre langage, car comme ça j'ai du mal à visualiser la difficulté?


RE: Déplacement d'un personnage à la souris - Sephi-Chan - 22-03-2011

Les algorithmes de recherche de plus court chemin utilisent un graphe et son assez gourmand en charge processeur.
Sur un petit graphe, il n'y aura pas de problème. Par contre, si tu cherches à déterminer le plus court chemin entre un point et un autre situé loin, PHP (comme pas mal d'autres langages de scripts) va se rétamer.

Donc si tu fais ta recherche à l'échelle de 5 ou 10 cases, ça devrait rouler. Smile D'ailleurs, tu peux probablement en faire une partie côté Javascript, pour avoir un affichage sympa du chemin proposé.


Sephi-Chan


RE: Déplacement d'un personnage à la souris - php_addict - 22-03-2011

effectivement en language scriptés ca va ramer monstrueusement sur des grosse carte, j'avais fais des tests avec une map de 500x500 (ce qui n'est pas tres grand) et avec un chemin assez complexe à trouver, et cela me prenait des fois plus de 20 secondes...il y avait la possibilité de coder un programme en c++ et d'y faire appel via php mais là c'est pas dans mes compétence...par contre si tu code en c,il y a moyen de dialoguer php <-> c++ (socket je crois ? )


RE: Déplacement d'un personnage à la souris - niahoo - 22-03-2011

quand tu veux rechercehr sur des cartes très grandes, il te faut faire plusieurs couches de grille avec une résolution plus petite pour simplifier la recherche générale.

En découpant ainsi ton chemin ça va très vite, à condition que tu puisses afficher le début du chemin au client et continuer le traitement en arrière plan pour la suite de ta route.


RE: Déplacement d'un personnage à la souris - djidi - 22-03-2011

Le jeu est divisés multiples zones de 17x15 cases, donc trouver le chemin ne devrait pas poser de problème.
Pour le langage, cela peut-etre PHP ou JS peut-importe Smile

Merci pour les solutions, je vais étudier les 2 algorithmes et voir ce que ca donne. Smile
S'il y en a d'autres ou des sources/exemples, je suis pas contre.


RE: Déplacement d'un personnage à la souris - php_addict - 22-03-2011

(22-03-2011, 02:30 PM)djidi a écrit : S'il y en a d'autres ou des sources/exemples, je suis pas contre.

en php dans le topic http://forum.phpfrance.com/vos-contributions/algorithme-astar-php-t245973.html tu trouvera un lien vers un script à télécharger (codé en poo)