Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Balas do inimigo seguindo Player!
- Higor Melo
- Membro
- Reações: 0
- Mensagens: 42
- Localização: SP
-
Balas do inimigo seguindo Player!
Galera, é o seguinte:
Eu coloquei no código da bala o MOVE TOWARDS e funcionou perfeitamente, porém quando a bala está vindo e eu pulo para desviar, ela faz a curva segue o player e fica impossível desviar. Alguma sugestão? -GM8.
Eu coloquei no código da bala o MOVE TOWARDS e funcionou perfeitamente, porém quando a bala está vindo e eu pulo para desviar, ela faz a curva segue o player e fica impossível desviar. Alguma sugestão? -GM8.
Re: Balas do inimigo seguindo Player!
Você está dando move_toward direto no player.
Você tem que pegar a posição do player no MOMENTO em que o tiro sai, ou seja, no momento em que o tiro é criado, vc armazena assim:
Supondo que o objeto de tiro e do player são respectivamente obj_tiro_inimigo e obj_player.
Dentro do evento onde o inimigo atira:
E no move toward que tem atualmente dentro do obj_tiro_inimigo vc muda para:
E não esquece de declarar no create do obj_tiro_inimigo:
O que vai acontecer?
Ele vai atirar na direção do player, mas não vai ficar seguindo, se o tiro ficar seguindo o player não há chance dele desviar.
Se o jogo passar a ficar muito fácil depois disso, manda o inimigo atirar mais balas que vc vai ver que legal que vai ficar.
EDIT: O código acima a bala vai parar quando chegar naquele ponto x,y destino, nesse caso seria melhor usar isso para o tiro não parar:
E retirar o move_toward do step ou seja la onde estiver.
Você tem que pegar a posição do player no MOMENTO em que o tiro sai, ou seja, no momento em que o tiro é criado, vc armazena assim:
Supondo que o objeto de tiro e do player são respectivamente obj_tiro_inimigo e obj_player.
Dentro do evento onde o inimigo atira:
Código: Selecionar todos
tiro = instance_create(x,y,obj_tiro_inimigo)
tiro.x_destino = obj_player.x
tiro.y_destino = obj_player.y
Código: Selecionar todos
move_towards_point( x_destino, y_destino, 10 );
Código: Selecionar todos
x_destino = 0
y_destino = 0
Ele vai atirar na direção do player, mas não vai ficar seguindo, se o tiro ficar seguindo o player não há chance dele desviar.
Se o jogo passar a ficar muito fácil depois disso, manda o inimigo atirar mais balas que vc vai ver que legal que vai ficar.
EDIT: O código acima a bala vai parar quando chegar naquele ponto x,y destino, nesse caso seria melhor usar isso para o tiro não parar:
Código: Selecionar todos
tiro = instance_create(x,y,obj_tiro_inimigo)
tiro.direction = point_direction(x, y, obj_player.x, obj_player.y)
tiro.speed = 10
Editado pela última vez por chicoweb em Sex Ago 19, 2016 6:50 pm, em um total de 1 vez.
Meus games:
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação
- Denis Lemos
- Membro
- Reações: 0
- Mensagens: 49
-
Re: Balas do inimigo seguindo Player!
Até onde eu sei, essa função que vc usou faz a bala ir constantemente em direção de algum ponto e se esse ponto mudar, a direção da bala também vai mudar.
Tenta usar as variáveis padrão do GM que servem para a movimentação. Ex: speed, direction, etc...
Eu acho que a melhor maneira seria vc dar uma direção e velocidade para a bala no momento em que ela é criada, usando a posição que o player está ou estava no momento que a bala foi criada.
Coloca isso no Evento Create da bala. Ps: Eu não testei se funciona, faz anos que eu não usava o GM e não lembro muito bem dos comandos, eu voltei a usar o GM faz pouco tempo.
obj_player é o nome do seu player.
Tenta usar as variáveis padrão do GM que servem para a movimentação. Ex: speed, direction, etc...
Eu acho que a melhor maneira seria vc dar uma direção e velocidade para a bala no momento em que ela é criada, usando a posição que o player está ou estava no momento que a bala foi criada.
Coloca isso no Evento Create da bala. Ps: Eu não testei se funciona, faz anos que eu não usava o GM e não lembro muito bem dos comandos, eu voltei a usar o GM faz pouco tempo.
Código: Selecionar todos
direction = point_direction(x,y, obj_player.x, obj_player.y);
speed = 5;
- Higor Melo
- Membro
- Reações: 0
- Mensagens: 42
- Localização: SP
-
Re: Balas do inimigo seguindo Player!
Perfeito!chicoweb escreveu:Você está dando move_toward direto no player.
Você tem que pegar a posição do player no MOMENTO em que o tiro sai, ou seja, no momento em que o tiro é criado, vc armazena assim:
Supondo que o objeto de tiro e do player são respectivamente obj_tiro_inimigo e obj_player.
Dentro do evento onde o inimigo atira:
E no move toward que tem atualmente dentro do obj_tiro_inimigo vc muda para:Código: Selecionar todos
tiro = instance_create(x,y,obj_tiro_inimigo) tiro.x_destino = obj_player.x tiro.y_destino = obj_player.y
E não esquece de declarar no create do obj_tiro_inimigo:Código: Selecionar todos
move_towards_point( x_destino, y_destino, 10 );
O que vai acontecer?Código: Selecionar todos
x_destino = 0 y_destino = 0
Ele vai atirar na direção do player, mas não vai ficar seguindo, se o tiro ficar seguindo o player não há chance dele desviar.
Se o jogo passar a ficar muito fácil depois disso, manda o inimigo atirar mais balas que vc vai ver que legal que vai ficar.
EDIT: O código acima a bala vai parar quando chegar naquele ponto x,y destino, nesse caso seria melhor usar isso para o tiro não parar:
E retirar o move_toward do step ou seja la onde estiver.Código: Selecionar todos
tiro = instance_create(x,y,obj_tiro_inimigo) tiro.direction = point_direction(x, y, obj_player.x, obj_player.y) tiro.speed = 10
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes