Inimigo atirar apenas quando o player está na mesma linha

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

Resolvido Inimigo atirar apenas quando o player está na mesma linha

Mensagem por andreh em Qua 11 Jul 2012, 21:51

É o seguinte, o meu jogo é de plataforma, e eu gostaria q o inimigo só começasse a atirar quando eu estivesse na mesma linha q ele.

Ex.:
________X________O______ -> Mesma linha, pode atirar


____________X_______
_____O_____ -> O player esta em outra plataforma, portanto o inimigo não o vê e não podera atirar

Legenda: X - inimigo
O - player

Alguem pode me ajudar quanto a isso PF



Última edição por andreh em Qui 12 Jul 2012, 11:38, editado 1 vez(es)

andreh

Ranking : Nota C
Número de Mensagens : 183
Idade : 20
Data de inscrição : 09/03/2011
Notas recebidas : C
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Inimigo atirar apenas quando o player está na mesma linha

Mensagem por Zero. em Qua 11 Jul 2012, 22:21

Use collision_line ou collision_rectangle.
Ambos checam se há colisão.
entaum se houver atira Happy.

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Inimigo atirar apenas quando o player está na mesma linha

Mensagem por Molinware em Qua 11 Jul 2012, 23:02

Código:
if instance_exists(obj_Player){
    if collision_line(x,y,x-196,y,obj_Player,true,true){
        //Atirar para a esquerda
    }else if collision_line(x,y,x+196,y,obj_Player,true,true){
        //Atirar para a direita
    }
}

Molinware

Ranking : Nota B
Número de Mensagens : 234
Idade : 25
Data de inscrição : 18/11/2011
Notas recebidas : C + C + D + B+ A + A
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://molinware.net23.net

Voltar ao Topo Ir em baixo

Resolvido Re: Inimigo atirar apenas quando o player está na mesma linha

Mensagem por Zero. em Qui 12 Jul 2012, 00:10

Exato, mas com o collision line vai ficar apenas 1 pixel de h.
Se quizer uma altura maior utilise o collision rectangle, que é basicamente da msm forma.

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Inimigo atirar apenas quando o player está na mesma linha

Mensagem por andreh em Qui 12 Jul 2012, 10:35

Obrigado galera! Me ajudou bastante! Usei o collision_rectangle
Código:
collision_rectangle(x+15,y-63,x+315,y+15,obj_player,true,true)

Mas alguem pode me explicar o que significa os dois ultimos "True"?

andreh

Ranking : Nota C
Número de Mensagens : 183
Idade : 20
Data de inscrição : 09/03/2011
Notas recebidas : C
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Inimigo atirar apenas quando o player está na mesma linha

Mensagem por Kapoty em Qui 12 Jul 2012, 10:52

andreh escreveu:Obrigado galera! Me ajudou bastante! Usei o collision_rectangle
Código:
collision_rectangle(x+15,y-63,x+315,y+15,obj_player,true,true)

Mas alguem pode me explicar o que significa os dois ultimos "True"?

1° True : Se usar verificação de colisão preciso.
2° True : Se o exemplo que chama essa função deve ser excluído na colisão.

Espero ter ajudado feliz3

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Resolvido Re: Inimigo atirar apenas quando o player está na mesma linha

Mensagem por Need 90 em Qui 12 Jul 2012, 10:55

tenta isso
Código:
if x = obj_player.x or y =obj_player.y {
//Código de atirar
}

Need 90

Ranking : Nota B
Número de Mensagens : 787
Data de inscrição : 16/01/2012
Notas recebidas : D+A+B
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://need90games.blogspot.com.br

Voltar ao Topo Ir em baixo

Resolvido Re: Inimigo atirar apenas quando o player está na mesma linha

Mensagem por andreh em Qui 12 Jul 2012, 11:37

Obrigado a todos pela resposta
kapoty - vlw pela explicação, mas então a ultima variavel não vai fazer diferença se eu deixar true ou false

need 90 - o seu código funciona sim, mas a coordenada x ou y do player tem q ser EXATAMENTE igual à do inimigo, e na vdd o q eu quero é um pouco mais de variação, por isso usei o collision rectangle, mas vlw mesmo assim!

Resolvido!

andreh

Ranking : Nota C
Número de Mensagens : 183
Idade : 20
Data de inscrição : 09/03/2011
Notas recebidas : C
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Inimigo atirar apenas quando o player está na mesma linha

Mensagem por Conteúdo patrocinado Hoje à(s) 16: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