Como checar se existe um objeto entre dois outros?

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

Como checar se existe um objeto entre dois outros?

Mensagem por douglas444 em Qua 22 Fev 2012, 13:28

Preciso que o objeto player ative um variável caso exista um objeto entre ele e seu inimigo, como faço isso?

douglas444

Número de Mensagens : 220
Idade : 19
Data de inscrição : 13/02/2012
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Como checar se existe um objeto entre dois outros?

Mensagem por TRFN em Qua 22 Fev 2012, 13:34

Qual seria a variável ?

--------------------------------------
O método seria você criar uma checagem no player para ver se ele esta antes do inimigo e depois do player (ou vice-versa).

Qual é a distancia no caso (minima) ?


___________



TRFN

Ranking : Nota C
Número de Mensagens : 970
Idade : 21
Data de inscrição : 16/01/2012
Notas recebidas : C
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

http://trfnsite.com

Voltar ao Topo Ir em baixo

Re: Como checar se existe um objeto entre dois outros?

Mensagem por saim em Qua 22 Fev 2012, 14:34

collision_line te retorna a id da instância que colidir com uma linha definida por dois pontos (você coloca as coordenadas dos pontos e o objeto a ser procurado nos argumentos). Acho que pode resolver seu problema.

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: Como checar se existe um objeto entre dois outros?

Mensagem por douglas444 em Qua 22 Fev 2012, 15:03

se o inimigo estiver a um distancia = ou < 150, ele ativa a variável player_descoberto, mas, caso entre eles haja um objeto, não será possível que a variável player_descoberto seja ativada, independente de distancia! e caso a variável ja esteja ativada, e o inimigo se depare com um objeto separando ele do player, a variável player descoberto é desativada!

douglas444

Número de Mensagens : 220
Idade : 19
Data de inscrição : 13/02/2012
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Como checar se existe um objeto entre dois outros?

Mensagem por PedroX em Qua 22 Fev 2012, 15:15

collision_line(x1, y1, x2, y2, obj, prec, notme)

x1, y1 -> posicao do primeiro
x2, y2 -> posicao do segundo
obj -> objeto entre eles
prec -> true ou false, indicando se a colisão é por pixel ou por shape (mascara).
notme -> não me incluir

A função retorna true ou false.

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: Como checar se existe um objeto entre dois outros?

Mensagem por saim em Qua 22 Fev 2012, 15:23

Pedrø escreveu:A função retorna true ou false.
Pode ser usado como true ou false, mas o que a função te retorna é a id da instância colidida (o que equivale a true num teste de comparação) ou noone (que equivale a false) se não houver colisão.
Essas equivalências só são verdadeiras pra testes de comparação, mas o valor retornado é diferente. Por exemplo, noone vale -4, enquanto false vale 0.
O game maker entende que valores abaixo de 0.5 possam ser considerados false e valores acima disso, como true, o que acaba causando essa confusão.

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: Como checar se existe um objeto entre dois outros?

Mensagem por PedroX em Qua 22 Fev 2012, 16:47

Pode ser usado como true ou false, mas o que a função te retorna é a id da instância colidida (o que equivale a true num teste de comparação) ou noone (que equivale a false) se não houver colisão.
Eu me enganei. Só que ele pode ainda usar true ou false, como você disse.
Nesse caso, ele não precisa do id.

Se o autor do tópico quiser saber mais:
http://gmbr.forumeiros.com/t16184-entenda-as-funcoes-de-colisao

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: Como checar se existe um objeto entre dois outros?

Mensagem por douglas444 em Qua 22 Fev 2012, 17:00

Pedrø escreveu:
Pode ser usado como true ou false, mas o que a função te retorna é a id da instância colidida (o que equivale a true num teste de comparação) ou noone (que equivale a false) se não houver colisão.
Eu me enganei. Só que ele pode ainda usar true ou false, como você disse.
Nesse caso, ele não precisa do id.

Se o autor do tópico quiser saber mais:
http://gmbr.forumeiros.com/t16184-entenda-as-funcoes-de-colisao

Vlw pedro e saim, ja tenho uma idéia do que fazer bounce

douglas444

Número de Mensagens : 220
Idade : 19
Data de inscrição : 13/02/2012
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Como checar se existe um objeto entre dois outros?

Mensagem por saim em Qua 22 Fev 2012, 17:17

Como o tópico foi resolvido, está sendo trancado.
Se quiser reabrir, entre em contato com a moderação.

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: Como checar se existe um objeto entre dois outros?

Mensagem por Conteúdo patrocinado Hoje à(s) 00:28


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