Atirar na direção certa

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

Atirar na direção certa

Mensagem por Mestre Rá em Qua 19 Ago 2015, 16:03

É o seguinte quando o inimigo na direção do personagem, quero que a imagem do projétil seja aquela direção. Ex.:
Se meu personagem está a esquerda e meu inimigo a direita, projétil que o inimigo disparar terá a imigem dela indo da direita para a esquerda e vise-e-versa.
Se já tiveram perguntado isso peço desculpa.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por Mateus O de Andrade em Qua 19 Ago 2015, 16:11

Boa tarde coleguinha.
primeiramente você deveria especificar que tipo de jogo é esse top view, 2d side, isométrico, etc.
mas eu presumo que seja 2d já que sitou apenas direita e esquerda.

Bom, primeiramente deve verificar em que lado o inimigo está. Se o x do player for menor que o do inimigo ele está a esquerda e se for maior ele estará na direita.
dai basta fazer image_xscale*=-1

Acho que é isso mas NÃO CONFIE EM MIM usahUAHSuASUhaS Eu não lembro de basicamente nada uashuashuasu espere mais alguém cara.
Um abração cara e boa sorte.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por Mestre Rá em Qua 19 Ago 2015, 16:14

O cara, foi mal, pensei que tinha colocado, é um jogo de plataforma.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por chicoweb em Qua 19 Ago 2015, 17:14

Tem um jeito fácil:

Vamos supor que o objeto do tiro seja obj_tiro e do player obj_player.

No step do obj_tiro ele vai SEGUIR o player onde ele for:

Código:
direction = point_direction(x,y,obj_player.x,obj_player.y)
image_angle = direction

Colocando o codigo acima no CREATE do obj_tiro ele vai na direção de onde o player estava quando o tiro foi dado e não vai seguir o player.

OBS: Voce terá que usar o speed, vspeed ou hspeed para movimentar o tiro para que o codigo de certo

chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por Mestre Rá em Qua 19 Ago 2015, 17:36

Não deu certo não cara.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por Adriel em Qua 19 Ago 2015, 20:26

Código:
if obj_player.image_xscale=-1 //se o player estiver virado pra esquerda
{
hspeed=-6 //poe aqui a velocidade do tiro que você quer
}
if obj_player.image_xscale=1 //se o player estiver pra direita
{
hspeed=6
}

Põe isso no Create do tiro. Vê se funciona aí Happy

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por Mestre Rá em Qui 20 Ago 2015, 07:48

O problema ocorreu de o inimigo atirar 1 vez somente, vou postar o que eu coloquei para ele atirar.

Spoiler:
if distance_to_object(obj_player)<200 and pode_atirar=true
{
instance_create(x,y,obj_projetil)
pode_atirar=false
alarm[0]=20
}

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por chicoweb em Qui 20 Ago 2015, 09:21

Tira o "and pode_atirar=true"

chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por xLuiZz em Qui 20 Ago 2015, 11:39

Cara,no Create do obj_inimigo coloca:
Create:

Código:
tempo = 0

ainda no obj_inimigo,coloca no step:
Step:

Código:
if (tempo>0) tempo -=1;

if(obj_player.x > x and tempo==0)
{
  instance_create(x-10,y-10,obj_tiro)
  tempo = 45;
}

if(obj_player.x < x and tempo==0)
{
  instance_create(x,y,obj_tiro)
  tempo = 30;
}

if(tempo > 30)
{
    tempo = 30
}


pronto

agora no obj_tiro,voce coloca no create:
Create:

Código:
if (obj_player.x > x) {hspeed = 17;} else {hspeed = -17;}

ISSAE Laughing Cool What a Face cyclops sorrindo2 sorrindo yes

xLuiZz

Número de Mensagens : 19
Idade : 16
Data de inscrição : 25/04/2015
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por Mestre Rá em Seg 24 Ago 2015, 08:18

Me desculpe pela demora, certo xLuiZz, só faltou colocar xscale no objeto tiro, assim a sprite dele irá mudar na direção certa e a distância em que o monstro pode atirar no player. Já coloquei os dois muito obrigado. Poderia me explicar o que ocorre no step do objeto inimigo?

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por theguitarmester em Seg 24 Ago 2015, 08:34

Código:
if (tempo>0) tempo -=1;
//Tempo maior que 0, diminuirá o tempo até chegar a -1
//como um alarm

if(obj_player.x > x and tempo==0)
{
  instance_create(x-10,y-10,obj_tiro) //Cria o tiro
  tempo = 45; //Seta o tempo como 45 step("1 segundo e meio")
}

if(obj_player.x < x and tempo==0)
{
  instance_create(x,y,obj_tiro) //Cria outro tiro
  tempo = 30; // *Os tempos poderiam ser iguais
}

if(tempo > 30) //define que se o tempo é maior que 30, será 30
{
    tempo = 30
}

Este evento define que quando o tempo for 0, o inimigo atire e o tempo tempo seja redefinido(para não atirar a cada step/quadro).

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por Mestre Rá em Seg 24 Ago 2015, 08:43

Veleu cara, minha duvida era esse 45 e 30 no tempo, muito obrigado pela ajuda.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por theguitarmester em Seg 24 Ago 2015, 09:03

De nada, sinceramente eu não entendi porque ele colocou tempo diferentes, mas no fim, iria dar no mesmo, visto que no fim do código havia a limitador para o tempo máximo ser 30.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Atirar na direção certa

Mensagem por Conteúdo patrocinado Hoje à(s) 10:31


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