Estou criando um jogo de ação 2D baseado em mapas com design de interação semelhante ao Diablo II. Em outras palavras, o jogador clica em torno de um mapa para movê-lo. Acabei de terminar o movimento do jogador e estou indo para o caminho.
No jogo, os inimigos devem cobrar o personagem do jogador. Existem também cinco tipos diferentes de terreno que oferecem bônus de movimento diferentes. Eu quero que a IA aproveite esses bônus de terreno enquanto eles tentam alcançar o jogador.
Disseram-me para verificar o algoritmo de pesquisa A * (http://en.wikipedia.org/wiki/A*_search_algorithm). Estou fazendo este jogo em HTML5 e JavaScript e encontrei uma versão em JavaScript: http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript Estou tentando descobrir como ajustá-lo Apesar.
Abaixo estão minhas idéias sobre o que preciso mudar. Com o que mais eu preciso me preocupar?
- Ao criar um gráfico, precisarei inicializar a matriz 2D que passo adiante com uma travessia de um mapa que corresponde aos diferentes tipos de terreno.
- in graph.js: a definição "GraphNodeType" precisa ser modificada para lidar com os 5 tipos de terreno. Não haverá paredes.
- em astar.js: O g e h pontuação terá de ser modificado. Como devo fazer isso?
- em astar.js: isWall () provavelmente deve ser removido. Meu jogo não tem paredes.
- no astar.js: Não tenho certeza do que é isso. Eu acho que indica um nó que não é válido para ser processado. Quando isso aconteceria?
- Em um nível alto, como altero esse algoritmo de "oh, existe uma parede aí?" para "esse terreno me levará ao jogador mais rápido que o terreno ao meu redor?"
Por causa do tempo, também estou debatendo a reutilização do meu algoritmo de Bresenham para os inimigos. Infelizmente, os diferentes bônus de movimento do terreno não serão usados pela IA, o que fará com que o jogo seja péssimo. : / Eu realmente gostaria de ter isso para o protótipo, mas não sou desenvolvedor de profissão nem cientista da computação. : D
Se você souber de algum código que faça o que estou procurando, compartilhe!
Dicas de verificação de sanidade para isso também são apreciadas.