Verificar se o objeto me vê com a direção

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

Verificar se o objeto me vê com a direção

Mensagem por gabrielsch em Ter 01 Nov 2011, 16:08


Olá pessoal da GMBR!

Hoje eu venho com uma duvida, como saber se o objeto esta me vendo, ou seja, se não a nada no caminho entr o obj_player e o obj_enemy, sendo que essa linha tem que estar na direção do objeto, por exemplo, o obj_enemy tem sua direção e ela muda, mas eu gostaria que criasse uma linha imaginaria e reta do obj_enemy para onde esta a direção dele, e caso o objeto esteja lá, faça algo. Deu para entender? Se não só falar que eu explico melhor!

Flw! sorrindo2

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Verificar se o objeto me vê com a direção

Mensagem por PedroX em Ter 01 Nov 2011, 16:23

Código:
direc=point_direction(x,y,player.x,player.y);
if abs(direction-direc)<20 //cria um campo de visão de 41º
{
if !collision_line(x,y,player.x, player.y, obj_parede, 1, 1)
{
//está vendo
}
}

Imagem:

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Verificar se o objeto me vê com a direção

Mensagem por saim em Ter 01 Nov 2011, 16:32

Diacho, PEDR0, você é rápido...

Bom, posso pelo menos acrescentar que "abs(direction-direc)" pode retornar 350 quando o resultado esperado seria 10 (355-5=350). Pra evitar isso, use:
Código:
abs(((((direction - direc) mod 360) + 540) mod 360) - 180);

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: Verificar se o objeto me vê com a direção

Mensagem por gabrielsch em Ter 01 Nov 2011, 16:50


Testei o código do PEDRO e parece que não funcionou, adaptei ao meu projeto e ficou mais ou menos assim, fiz até um move_toward para testar:
Código:
direcs=point_direction(x,y,obj_player.x,obj_player.y);
if abs(direction-direcs)<20
{
 if !collision_line(x,y,obj_player.x, obj_player.y, solid, 1, 1)
 {
  move_towards_point(obj_player.x,obj_player.y,4)
 }
}

Testei também com o código do saim e não aconteceu nada também!

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Verificar se o objeto me vê com a direção

Mensagem por saim em Ter 01 Nov 2011, 17:17

O nome do objeto é "solid" ou você está achando que "solid" é parent de todos os objetos cuja variável "solid" vale "true"?

Meu código não faz nada mesmo. Era só uma complementação de uma parte do código do Þєdяø. Leia lá o post de novo que você vai entender.

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: Verificar se o objeto me vê com a direção

Mensagem por Thyago em Ter 01 Nov 2011, 17:33

.Fiz uma engine para você,se o inimigo estiver te vendo e você sair do campo de visão dele ele te perde de vista em 5 segundos,mas você pode mudar.

http://www.4shared.com/get/faJdDXjk/visao_inimigo_2.html

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Verificar se o objeto me vê com a direção

Mensagem por Conteúdo patrocinado Hoje à(s) 20:21


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