Conectar-se
Quem está conectado
21 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 20 Visitantes

Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 25/11/2012
Número de Mensagens : 77
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

IA top down shooter

em Qua 11 Jun 2014, 18:18
Como citou o colega Gonçalves em uma conversa "eu só sei criar B.A (burrice artificial), e comigo e mais ou menos assim, tenho claramente na minha cabeça a lógica daquilo que preciso para que a B.A se pareça bem com uma I.A porém preciso de ajuda para traduzir isso em códigos, portanto tentarei passar teoricamente aquilo que preciso e vcs podem me dar ideias de como traduzir isso pro gml.

ESCLARECIMENTOS

1-O jogo é um top down shooter, porém não como a maioria desses que vemos em "examples", está mais para uma visão do "zelda" para snes. O player aponta para 8 direções (0,45,90,135,180,225,270,315) para cada direção uma sprite diferente, os tiros tbm se limitam apenas a essas 8 direções, porém oscilam dando uma sensação de maior abrangência no momento do tiro.

2- Com os inimigos a situação é quase a msma, as sprites apontam para essas 8 direções porém os tiros vão na direção que o player estiver no momento em que o obj.tiro foi criado (dando assim uma chance de escapar).

3- Tendo em vista o sistema de direções do player e do inimigo aqui vai mais ou menos as "B.As" que tenho em mente nas quais preciso de ajuda.

- Vamos imaginar 3 objetos bola verde, bola vermelha, parede

preciso saber como fazer para utilizar a collision_line de forma correta fazendo a bola vermelha seguir a verde caso ela esteja visível.....mas não se estiver escondida atras do muro....fora da visao da bola vermelha....

Preciso tbm fazer com q a bola vermelha se esconda atrás do muro caso comece a ser atingida por tiros....tp procurar cobertura....mas ainda assim voltando atacando...e voltando a se esconder....

e o mais importante preciso adequar essa teoria das "bolas vermelhas e verdes" ao meu sistema de sprites e direções.

tenho algumas duvidas mais, mas vou esperar que algm me responda essas por enquanto, desde ja obrigado..grande abraço.
avatar
Data de inscrição : 31/03/2010
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: IA top down shooter

em Ter 17 Jun 2014, 08:59
Deixa eu ver se entendi. Você quer que quando um inimigo veja o "herói" ele comece a atirar se o herói estiver visível, caso contrário o inimigo não atira. Não se vai resolver mas pensa o seguinte, imagine que inimigo esteja a X metros(ou sqm) do herói caso o herói esteja no alcance do inimigo (do qual você vai determinar o alcance) ele começa a atirar no herói, sendo assim você procura se proteger e tenta correr do inimigo do qual seu alcance vai aumentar em relação ao inimigo que por si vai parar de atirar caso ele esteja fora de alcance. É mais ou menos isso que você quer dizer ?
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 13/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://bigleafeater.tumblr.com/

Re: IA top down shooter

em Ter 17 Jun 2014, 09:55
Isso que você está querendo fazer é meio complicado.

Primeiro você tem que aprender um pouco de pathfinding que é exatamente a questão do collision line. É extremamente necessário isso, pois é um estudo de teoria dos grafos para achar caminhos, o game maker te dá isso de graça.

Esse vídeo é um bom tutorial para você utilizar paths e pathfinding:
https://www.youtube.com/watch?v=g7SwdmecICU

Sobre as bolas que atiram, eu recomendo você criar um sistema onde você tem pontos pré definidos de cover onde eles podem se esconder. Fazer um sistema assim em todos os pontos do cenário é relativamente complicado e requer um sistema mais complexo. Você pode fazer o player andar aleatoriamente em linha reta até que ele não seja visto (Collision line) e quando ele não for visto, ele para de andar e começa a atirar no esquema de cover.

Ou você pode salvar as faces que não são visíveis pelo player e fazer com que ele se esconda atrás dessas faces do objeto parede mais próximo.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum