[Resolvido]Angulo + perseguição + image_angle

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

[Resolvido]Angulo + perseguição + image_angle

Mensagem por Limalokão em Seg 16 Abr 2012, 01:02

É o seguinte galerinha, preciso saber como eu faço para meus ajudantes(as bolinhas na imagem) seguirem o angulo do ''tanque'' mais a frente do 'X' sendo que o 'X' do tanque não é no centro e sim mais atrás.



1º Cada bolinha é um objeto diferente: 1 atira fogo e outra água
2° Essas bolinhas são colocadas diretamente na room
3° Cada bolinha mira para um inimigo diferente (aqui entra o image_angle)
4° Só =D

Obrigado... =)


Última edição por Soul Limaloko em Ter 17 Abr 2012, 23:03, editado 1 vez(es)

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Angulo + perseguição + image_angle

Mensagem por saim em Seg 16 Abr 2012, 08:49

Faça o tanque controlar a posição das bolinhas. Logo no create, defina em que ângulo e em que distância essas bolinhas se encontram em relação ao tanque
Código:
angFogo = point_direction(x, y, fogo.x, fogo.y);
distFogo = point_distance(x, y, fogo.x, fogo.y);
//idem para a água
Daí, no step, force a posição das bolinhas em função da posição e image_angle do tanque
Código:
//define a posição e image_angle do tanque ANTES de fazer isso aqui:
fogo.x = x + lengthdir_x(distFogo, angFogo + image_angle);
fogo.y = y + lengthdir_y(distFogo, angFogo + image_angle);
//idem pra água
Se você conhecer a função lengthdir_x/y (tutorial na assinatura) e desenhar os ângulos, vai entender a matemática rapidinho.

Isso pode gerar alguns problemas se você, ao criar a room, colocar as bolinhas depois do tanque (porque quando o tanque for rodar o create event, ainda não vai ter as bolinhas na room e o programa não vai saber o que é "fogo.x").
Pra evitar isso, sugiro NÃO colocar as bolinhas na room. Dentro do create do tanque, antes daquelas linhas mostradas acima, crie cada uma das bolinhas. Isso vai garantir que quando aquele código rodar, as instâncias já estejam presentes.
Código:
fogo = instance_create(x + ??, y - ??, objFogo);
agua = instance_create(x + ??, y + ??, objAgua);

Pro image_angle das bolinhas, simplesmente defina o valor no step do objeto, em função de onde você quer que ela mire.

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: [Resolvido]Angulo + perseguição + image_angle

Mensagem por Limalokão em Seg 16 Abr 2012, 12:50

Beleza, Eu ja sabia sobre os lenghtdir mas não sabia onde usa-los hehe. Tudo certo a nao ser uma coisa :s Tem como aprimorar a perseguição? Por que o tanque tem umas hastes que é onde ficam essas bolinhas quando ele começa a andar as bolinhas vão ficando para trás. Obrigado saim você sempre consegue ajudar HEHE =D

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Angulo + perseguição + image_angle

Mensagem por saim em Seg 16 Abr 2012, 14:56

Soul Limaloko escreveu:o tanque tem umas hastes que é onde ficam essas bolinhas quando ele começa a andar as bolinhas vão ficando para trás.
??? Como assim, elas ficam pra trás?
Se for um step pra trás, o problema era que as bolinhas se moviam antes do tanque, e fazer o tanque controlar o movimento delas DEPOIS dele ter se movido deveria resolver isso.
Se for um um movimento mais lento que o do tanque, fazendo com que elas eventualmente acabem por perder o rastro dele... Você precisa me ensinar o que está fazendo!!!

Uma ilustração como a do post inicial poderia ajudar a explicar o que está acontecendo.

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: [Resolvido]Angulo + perseguição + image_angle

Mensagem por Limalokão em Seg 16 Abr 2012, 23:16

Então parceiro, fiz aqui um exemplo: Controlar pelas flechas =D

http://dl.dropbox.com/u/8556803/Para_Forum/angulo_velocidade.gmk

Veja que conforme você anda elas ficam para tras =/ SÃO LERDAS.

Vlws Manin

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Angulo + perseguição + image_angle

Mensagem por Kabeção em Ter 17 Abr 2012, 11:39

Isso é porque você esta atualizando as posições antes do tanque atualizar as dele.
Quando você usa speed as posições só são atualizadas depois do evento Step, então aquela parte
Código:
fogo.x = x + lengthdir_x(distFogo, angFogo + image_angle);
fogo.y = y + lengthdir_y(distFogo, angFogo + image_angle);

agua.x = x + lengthdir_x(distAgua, angAgua + image_angle);
agua.y = y + lengthdir_y(distAgua, angAgua + image_angle);
Devia estar em um evento End Step, ou seja, depois que o tanque já se moveu.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Angulo + perseguição + image_angle

Mensagem por Limalokão em Ter 17 Abr 2012, 23:02

Kabeção escreveu:Isso é porque você esta atualizando as posições antes do tanque atualizar as dele.
Quando você usa speed as posições só são atualizadas depois do evento Step, então aquela parte
Código:
fogo.x = x + lengthdir_x(distFogo, angFogo + image_angle);
fogo.y = y + lengthdir_y(distFogo, angFogo + image_angle);

agua.x = x + lengthdir_x(distAgua, angAgua + image_angle);
agua.y = y + lengthdir_y(distAgua, angAgua + image_angle);
Devia estar em um evento End Step, ou seja, depois que o tanque já se moveu.

, muito bom, Funcionou perfeito! Eu não sabia que isso causava conflito criar primeiro a speed de uma e depois do outro! HeHe Vivendo, errando e aprendendo né =D Vlws saim e Kabeção

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Angulo + perseguição + image_angle

Mensagem por Conteúdo patrocinado Hoje à(s) 18:03


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