Probrema em IA básica de Tennis

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Probrema em IA básica de Tennis

Mensagem por Super Games em Ter 05 Abr 2011, 10:08

Ontem, começei a desenvovler uma engine de Tennis, está ficando já legal, já tinha Masks, Rede, bola e o jogador, só foltava o inimigo, entam quis executar uma IA super simples no Step do inimigo que é:
Código:
x = objBola.x
E Em seguida fiz a colisão com a rede, até ai tudo bem, mas ao executar o jogo, o inimigo atravessa a rede para vir pegar a bola, sendo que já fiz a colisão dele com a bola, entam é este o meu probrema, creio eu que seja na IA, alguem pode me ajudar, desde já agradeço.


Até! flw

Super Games

Ranking : Nota D
Número de Mensagens : 2704
Idade : 18
Data de inscrição : 10/06/2010
Notas recebidas : D
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Probrema em IA básica de Tennis

Mensagem por sonic luan em Ter 05 Abr 2011, 10:42

acho que não posso ajudar pois não sei o que pode ser, voçe não esplicou muito bem. Me manda a engine para que eu possa ajudar.

sonic luan

Ranking : Nota C
Número de Mensagens : 1003
Idade : 17
Data de inscrição : 28/01/2011
Notas recebidas : C-D-A-C
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://sonicmaker.forumeiros.com/memberlist

Voltar ao Topo Ir em baixo

Re: Probrema em IA básica de Tennis

Mensagem por GuiEdu em Ter 05 Abr 2011, 10:58

Não seria melhor se vc usar o distance_to_object?
Aí quando o cara tiver a tal distancia da bola, coloca x -= tanto ou x += tanto para ele se mover até a bola (horizontalmente) e quando a distancia dele em relação a bola for mínima, ele rebate a bola... se por exemplo ele estiver muito longe, aí não vai alcançar..
concluindo, cria uma variável que vai dizer se ele já rebateu ou não aí se ele já bateu na bola, ele vai ficar esperando e não sair correndo atras da bola ;)

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Probrema em IA básica de Tennis

Mensagem por Mannoroth em Ter 05 Abr 2011, 11:01

No seu jogo a rede está horizontal ou vertical, isto é, a bola vai entre pra cima e pra baixo ou pra direita e esquerda?
Digamos que a rede seja vertical, o inimigo esteja na direita e o player na esquerda, entao se voce botar x=objBola.x no step do inimigo, o x dele vai sempre ser o mesmo q o da bola, mesmo que tenha colisão com outros objetos, incluindo a rede. Vc teria que colocar y=objBola.y, mas o x permanecendo o mesmo, assim o x da bola so vai ser o mesmo q o do inimigo quando a bola vier pro inimigo, e é só o que precisa.

Mannoroth

Ranking : Nota D
Número de Mensagens : 836
Idade : 26
Data de inscrição : 05/10/2010
Notas recebidas : D+D
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Probrema em IA básica de Tennis

Mensagem por Tedi Ripper em Ter 05 Abr 2011, 13:10

não é por nada, mas, se o x do inimigo for igual ao x da bola, o inimigo nunca vai errar a bola.

acredito que vc colocou um step para o objeto inimigo ir até a bola, isso ta errado, coloque algo assim:
if obj_bola.y=(y da rede) {codigo para o inimigo seguir a bola}

ai na parte: obj_bola=(y da rede), vc troca o igual por < ou >, veja ai quando o y da bola for mais proximo do campo inimigo.

flw

Tedi Ripper

Ranking : Nota C
Número de Mensagens : 765
Idade : 19
Data de inscrição : 21/11/2010
Notas recebidas : C
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Probrema em IA básica de Tennis

Mensagem por willam em Ter 05 Abr 2011, 13:30

Cara você tem que deixar a rede do objeto sólida e o jogador tbm

willam

Ranking : Sem avaliações
Número de Mensagens : 154
Idade : 18
Data de inscrição : 25/09/2010
Reputação : -16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Probrema em IA básica de Tennis

Mensagem por saim em Ter 05 Abr 2011, 13:41

ou:
Código:
x=median(limite_esquerdo, limite_direito, x+velocidade_do_inimigo*sign(obj_bola.x-x))
isso deve fazer seu inimigo correr atrás da bola numa velocidade limitada (e constante, infelizmente) sem ultrapassar os limites impostos.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Probrema em IA básica de Tennis

Mensagem por Conteúdo patrocinado Hoje à(s) 06:30


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum