Conectar-se
Quem está conectado
14 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 14 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 : 08/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

fazendo inimigos inteligentes?

em Qua 12 Out 2011, 15:36
Oi galera!Sou novo no fórum e iniciante no game maker e preciso de ajuda com configuração dos inimigos e se alguem conhece a new revival engine me fale assim podera me ajudar mais ainda.
Eu sei que para fazer um inimigo me seguir uso tal código mas como fazer ele me seguir só em linha reta e quando me aproximo dele?
E como fazer um tiro teleguiado que se destrói após uns segundos me seguindo?(fazer tiro teleguiado eu sei)
Agradeço muito a quem poder me ajudar Happy


Última edição por Tanker GT em Qui 13 Out 2011, 22:37, editado 1 vez(es)
avatar
Ranking : Nota B
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Número de Mensagens : 513
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: fazendo inimigos inteligentes?

em Qua 12 Out 2011, 15:44
oi Tanker.

1. - para um inimigo seguir quando o player chega perto, eu uso esse código:

Código:
if (distance_to_object(obj_player) < 300)
{movimento = "perseguir";}

if (movimento = "perseguir")
{
   
    move_towards_point(obj_player.x,obj_player.y,2);
}
else{
    speed = 0;
}
Eu deixo esse código no Step do Inimigo.
O "movimento" é uma variável do Inimigo que eu criei.
Vc pode alterar o valor "300" para ajustar a distância que desejar.
Isso ajuda?

2. - para o Tiro teleguiado se destruir depois de alguns segundos, existe esse jeito de fazer:
No Create do objeto Tiro vc coloca no Code:
Código:
alarm[0] = 50;
Cria o Alarm[0], e no Code dele vc pode por:
Código:
instance_destroy();
No código alarm[0] = 50; o valor "50" vc pode alterar para diminuir ou aumentar
o tempo que o tiro irá durar antes de ser destruído.
Esse é um dos jeitos de fazer.
testa e vê se dá certo.


Última edição por Eudes - Hyo em Qua 12 Out 2011, 16:05, editado 3 vez(es)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 08/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: fazendo inimigos inteligentes?

em Qua 12 Out 2011, 15:53
O inimigo continua me seguindo tanto na horizontal quanto na vertical eu queria só na horizontal
Mas já ajuda sim
avatar
Data de inscrição : 10/05/2011
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: fazendo inimigos inteligentes?

em Qua 12 Out 2011, 15:56
Bem, para o tiro se destruir após um tempo, faça isso:

No evento create coloque:
Código:
alarm[0]=30;

Substitua 30 pelo número que você quiser, mas lembre-se que 30 é igual a 1 segundo, então 60 é igual a 2 segundos, 90 é igual a 3 e etc.

No evento Alarm 0 coloque:
Código:
instance_destroy();
avatar
Ranking : Nota B
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Número de Mensagens : 513
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: fazendo inimigos inteligentes?

em Qua 12 Out 2011, 16:01
para ele seguir só na horizontal tenta mudar o trecho do Code do Inimigo para isso:
Código:
if (movimento = "perseguir")
{
   
    move_towards_point(obj_player.x,y,2);
}
essa função move_towards_point() recebe 3 parâmetros:
a posição X do destino, a posição Y, e a Velocidade.
na posição X vc deixa obj_player.x aí ele vai seguir a posição horizontal do Player.
Na posição Y vc deixa apenas y, ao invés de por obj_player.y, aí ele continuará na posição vertical que ele já estiver.
E no valor 2 é a velocidade de movimento dele, aí vc pode mudar
para a velocidade ki vc kiser.
Acredito ki seja isso mesmo, dá uma olhada.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 08/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: fazendo inimigos inteligentes?

em Qua 12 Out 2011, 16:13
MUITISSIMO OBRIGADO GALERA!
eu tive que fundir o meu código com o seu ficou assim:
if (distance_to_object(objPlayer) < 100)
hspeed*=0.77;
vspeed*=0.77;
move_towards_point(objPlayer.x,y,2);
Eu nem sabia que o alarm se usava assim Razz
Knonick acho que já nos conhecemos sou o Espio GT
avatar
Data de inscrição : 10/05/2011
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: fazendo inimigos inteligentes?

em Qua 12 Out 2011, 19:19
É, já nos conhecemos mesmo. Mas houve algum problema com o código do tiro? Se está tudo certo peça pra trancar o tópico.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 08/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: fazendo inimigos inteligentes?

em Qui 13 Out 2011, 21:40
Os dois códigos deu certo
valeu pessoal.
Mas apareceu mais uma dúvida.
tipo agora o personagem me segue mas como fazer com que quando ele ir para direita mudar os sprite para outro considerando que ele está progamado para me seguir.
avatar
Data de inscrição : 10/05/2011
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: fazendo inimigos inteligentes?

em Qui 13 Out 2011, 21:54
Código:
if hspeed<0
{
sprite_index=SPRITE_PARA_ESQUERDA
}
if hspeed>0
{
sprite_index=SPRITE_PARA_DIREITA
}

Deu certo?
avatar
Data de inscrição : 19/01/2011
Número de Mensagens : 204
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: fazendo inimigos inteligentes?

em Qui 13 Out 2011, 22:03
você tbm poderia fazer assim:


Código:
if direction=0
{
sprite_index=sprite direita
}
if direction=180
{
sprite_index=sprite esquerda
}
Da certo tbm, testei

direction 0 é o mesmo q direita e direction 180,esquerda(90 cima,270 baixo)..a cada 90 graus uma direção diferente, começando pela direita..

flw
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 08/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: fazendo inimigos inteligentes?

em Qui 13 Out 2011, 22:05
Deu certo sim valew pessoal!
Tenho que pedir para trancar o tópico por mp?
avatar
Data de inscrição : 10/05/2011
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: fazendo inimigos inteligentes?

em Qui 13 Out 2011, 22:24
Edita o tópico e coloca [Resolvido] na frente.
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