Criar um tiro de acordo com a direção do inimigo

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

Criar um tiro de acordo com a direção do inimigo

Mensagem por Zero. em Sex 23 Mar 2012, 10:18

pessoal preciso que o inimigo crie um obj_bolhas e esse obj va em direção (esquerda,direita,cima ou baixo) se acordo com a posição do jogador:
Tipo:
Se o jogador estiver com a sua cordenada y (em relação ao inimigo) >obj_inimigo.y ou E o caso de x tb mas x é diferente quero assim se x do player for < o do inimigo o obj_bolhas vá para direita e o contrário se x>x do inimigo.

Mas ai o problema. e se y do player for menor que y do inimigo e x do player for menor que x do inimigo ? eu não quero q o obj_bolhas saia inclinado tem que ser so as 4 direções básicas. como faz para checar se o x do player = x do inimigo and y do player < que y do inimigo ? seria assim ?

Gratoo

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por saim em Sex 23 Mar 2012, 10:54

Acredito que você queira a direção que mais se aproxima da direção ao player.
Então você vai fazer o seguinte: vai pegar a direção até o player, dividir por 90 e arredondar pro inteiro mais próximo. O resultado vai dar 0, 1, 2, 3 ou 4. Multiplique esse resultado arredondado por 90 e vai ter a direção que você quer (0, 90, 180, 270 ou 360).
Código:
direção_que_você_quer = 90 * round((point_direction(x, y, player.x, player.y)) / 90);

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por Zero. em Sex 23 Mar 2012, 11:00

Como funciona o round e onde por este código ?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por saim em Sex 23 Mar 2012, 11:32

"round" é "arredondar". Temos 3 funções que fazem coisas parecidas:
floor(numero) - arredonda um número pra baixo, simplesmente eliminando qualquer parte decimal que ele tenha
ceil (numero) - arredonda um número pra cima, até o próximo inteiro
floor(número) - arredonda o número pro inteiro mais próximo.
Tem uma quarta função relacionada que faz exatamente o contrário:
frac(numero) - elimina a parte inteira do número, deixando apenas a parte decimal.

Como você quer multiplo de 90 mais próximo, você divide o ângulo que você tem por 90, arredonda e multiplica de novo por 90.

Coloque o código no evento que você estiver usando pra definir a direção da bolha. Isso economiza um monte de código do tipo "if-else".

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por Zero. em Sex 23 Mar 2012, 11:36

Eu colokei no step mas tipo.
Oque é essa parte do codigo q vc postou ?
direção_que_você_quer

seria um variavel, e qual codigo usar para dizer que a direção para qual ele vai é essa variavel e a speed ?

EDITTT ---------------------------------

O Movimento eu ja fiz usei o drag n' drop aba move usei o move fixed Happy .
Mas agr como fazer com q o jogador esteja em uma boa posição para o inimigo atirar, se não o inimigo vai ficar so atirando e perdendo munição Happy .

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por CLT em Sex 23 Mar 2012, 12:04

Para o jogador atirar na direção em que está virado crie uma variável que irá identificar o lado em que ele está virado, coloque está variável no Create.

Por exemplo, você já criou a variável então coloque no Step:

Código:
if keyboard_check(vk_left)
{
global.lado=1
}

Isso é uma base agora faça o resto sozinho.

E para o inimigo atirar, você tem que criar um Alarm e definir o tempo desse Alarm e após o término do tempo ele atirar e reativar.

E para atirar apenas se estiver perto coloque no Step (exemplo):

Código:
if distance_to_object(jogador) > 300
{
ação
}

CLT

Ranking : Nota C
Número de Mensagens : 343
Data de inscrição : 06/01/2012
Notas recebidas : B-D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://equipeevolution.forumeiros.com/

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por Zero. em Sex 23 Mar 2012, 12:10

Eu já fiz tudo isso a algum tempo atras Happy .
Mas oque quero é que tipo ele ta perto do inimido mas tem uma pedra na frente dele, eu quero que ele não atire. só atire se der pra atirar, o obj_pedra é um tile na verdade e eu udo um obj_block pra fazer a colisão que para o jogador. e entaum ?

Gratoo

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por saim em Sex 23 Mar 2012, 13:12

Não, não, se é pra atirar só na hora certa, a coisa muda toda de figura. Você tem que checar se tem o player na direção que você quer. Pra isso, use collision_line.
Tendo o player, verifique se o caminho está livre. Pra isso, use outro collision_line.
pseudocódigo:
Código:
em cada uma das 4 direções{
SE (tem jogador na reta){
direção_certa = essa direção;
SE (não tem pedra na reta){
atira na direção_certa
}}}

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por Zero. em Sex 23 Mar 2012, 13:14

como checar se n tem algo sólido na frente. so quero saber isso.
qm atira é o inimigo então como saber se na frente dele tem algo solido? se tiver ele não atira se não tiver ele atira normal .

só quero saber isso

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por saim em Sex 23 Mar 2012, 13:21

saim escreveu:(...)verifique se o caminho está livre. Pra isso, use outro collision_line.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por Zero. em Sex 23 Mar 2012, 13:26

Saim eu num sei usar collision line não *---* .
e tipo como usar ela para saber se esta na frente se estar em cima etc... ?

Me diz como usar T-T

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por saim em Sex 23 Mar 2012, 14:41

O PedrØ tem um tutorial que ensina TODAS as funções de colisão. Como argumentos, você vai usar a posição (x, y) do inimigo e uma posição (x, y) na direção requerida.

Pra saber as coordenadas (x, y) da segunda posição, você vai precisar de trigonometria - mais precisamente, lengthdir_x e lengthdir_y. Tem um tutorial a respeito na minha assinatura.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por Zero. em Sex 23 Mar 2012, 14:43

ok ja estou começando os estudos ...
espero q eu aprenda Happy vlw saim ...

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criar um tiro de acordo com a direção do inimigo

Mensagem por Conteúdo patrocinado Hoje à(s) 17:54


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