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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Atirar na direção certa

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.
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

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

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

Re: Atirar na direção certa

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.
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Re: Atirar na direção certa

em Qua 19 Ago 2015, 16:14
O cara, foi mal, pensei que tinha colocado, é um jogo de plataforma.
avatar
Ranking : Nota C
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Número de Mensagens : 666
Insígnias de JAM :

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

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

Re: Atirar na direção certa

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
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Re: Atirar na direção certa

em Qua 19 Ago 2015, 17:36
Não deu certo não cara.
avatar
Data de inscrição : 18/07/2009
Número de Mensagens : 922
Insígnias de JAM :

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

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

Re: Atirar na direção certa

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
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Re: Atirar na direção certa

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
}
avatar
Ranking : Nota C
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Número de Mensagens : 666
Insígnias de JAM :

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

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

Re: Atirar na direção certa

em Qui 20 Ago 2015, 09:21
Tira o "and pode_atirar=true"
avatar
Data de inscrição : 25/04/2015
Número de Mensagens : 19
Insígnias de JAM :

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

Re: Atirar na direção certa

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
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Re: Atirar na direção certa

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?
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

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

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: Atirar na direção certa

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).
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Re: Atirar na direção certa

em Seg 24 Ago 2015, 08:43
Veleu cara, minha duvida era esse 45 e 30 no tempo, muito obrigado pela ajuda.
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

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

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: Atirar na direção certa

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