Conectar-se
Quem está conectado
16 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 16 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Inimigo atirar apenas quando o player está na mesma linha

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)
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

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

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

em Qua 11 Jul 2012, 22:21
Use collision_line ou collision_rectangle.
Ambos checam se há colisão.
entaum se houver atira Happy.
avatar
Ranking : Nota B
Notas recebidas : C + C + D + B+ A + A
Data de inscrição : 18/11/2011
Número de Mensagens : 234
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11
Ver perfil do usuáriohttp://molinware.net23.net

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

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
    }
}
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

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

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

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.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

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

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"?
avatar
Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 22

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

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

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
avatar
Ranking : Nota B
Notas recebidas : D+A+B
Data de inscrição : 16/01/2012
Número de Mensagens : 787
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://need90games.blogspot.com.br

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

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
}
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

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

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!
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