Je crée un jeu d'action basé sur une carte 2D avec une conception d'interaction similaire à Diablo II. En d'autres termes, le joueur clique sur une carte pour déplacer son joueur. Je viens de terminer le mouvement du joueur et je passe à la recherche de chemin.
Dans le jeu, les ennemis doivent charger le personnage du joueur. Il existe également cinq types de terrains différents qui donnent différents bonus de mouvement. Je veux que l'IA profite de ces bonus de terrain alors qu'elle essaie d'atteindre le joueur.
On m'a dit de vérifier l'algorithme de recherche A * (http://en.wikipedia.org/wiki/A*_search_algorithm). Je fais ce jeu en HTML5 et JavaScript, et j'ai trouvé une version en JavaScript: http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript J'essaie de comprendre comment le modifier bien que.
Voici mes idées sur ce que je dois changer. De quoi d'autre dois-je m'inquiéter?
- Lorsque je crée un graphe, je vais devoir initialiser le tableau 2D que je passe transmis avec une traversée d'une carte qui correspond aux différents types de terrain.
- dans graph.js: la définition de "GraphNodeType" doit être modifiée pour gérer les 5 types de terrain. Il n'y aura pas de murs.
- dans astar.js: les scores g et h devront être modifiés. Comment dois-je procéder?
- dans astar.js: isWall () devrait probablement être supprimé. Mon jeu n'a pas de murs.
- dans astar.js: Je ne sais pas ce que c'est. Je pense que cela indique un nœud qui n'est pas valide pour être traité. Mais quand cela arriverait-il?
- À un niveau élevé, comment puis-je changer cet algorithme de "oh, y a-t-il un mur là-bas?" à "ce terrain m'amènera-t-il au joueur plus rapidement que le terrain autour de moi?"
À cause du temps, je discute également de la réutilisation de mon algorithme de Bresenham pour les ennemis. Malheureusement, les différents bonus de mouvement de terrain ne seront pas utilisés par l'IA, ce qui rendra le jeu nul. : / Je voudrais vraiment avoir ça pour le prototype, mais je ne suis pas développeur de métier ni informaticien. :RÉ
Si vous connaissez un code qui fait ce que je recherche, partagez-le!
Des conseils pour vérifier la santé mentale sont également appréciés.