[Resolvido]Movimento circular

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

Resolvido [Resolvido]Movimento circular

Mensagem por Hatzo enkiri em Ter 19 Out 2010, 15:16

Como eu faço uma AI ficar rodando?
Se não tiverem entendido é o seguinte que eu quero:
que a AI faça um movimento circular.
Por favor me ajudem!!



Última edição por Hatzo enkiri em Ter 19 Out 2010, 15:48, editado 1 vez(es)

Hatzo enkiri

Ranking : Nota B
Número de Mensagens : 226
Idade : 22
Data de inscrição : 19/02/2009
Notas recebidas : B
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Movimento circular

Mensagem por Jonathan Jinchuukiri em Ter 19 Out 2010, 15:30

Uma maneira facil seria criar um patch que faça um circulo como desejas e mandalo a AI executa-lo.

Jonathan Jinchuukiri

Número de Mensagens : 27
Idade : 21
Data de inscrição : 16/10/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Movimento circular

Mensagem por vinians em Ter 19 Out 2010, 15:40

Amigo, movimento circular é simples. Mas não confunda um simples movimento circular com A.I. Geralmente uma A.I. involve um patrulhamento de algum modo. O movimento circular puro e simples, é apenas uma instacia girando ao redor de algo. De for somente pra girar façamos assim:
Evento CREATE:

raio = 100; //raio do giro
xc = x;
yc = y;
angulo = 0;

Agora no Evento Step:

x = xc + lengthdir_x(raio, angulo);
y = yc + lengthdir_y(raio, angulo);
angulo += 1; //roda no sentido horário
if (angulo > 360) angulo = 0;


Basta esses eventos para girar. Ah e não se esqueça de centralizar o sprite pra ficar mais legal.




vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Movimento circular

Mensagem por Jonathan Jinchuukiri em Ter 19 Out 2010, 15:42

Realmente um script notável vinians, como todos que vejo de sua autoria.

Jonathan Jinchuukiri

Número de Mensagens : 27
Idade : 21
Data de inscrição : 16/10/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Movimento circular

Mensagem por Hatzo enkiri em Ter 19 Out 2010, 15:48

Vlws a todos.O código funcionou aqui vinians(também aprendi outra função que eu desconhecia).Obrigado tambem a Jonathan Jinchuukiri mas eu queria de outro jeito.

Hatzo enkiri

Ranking : Nota B
Número de Mensagens : 226
Idade : 22
Data de inscrição : 19/02/2009
Notas recebidas : B
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Movimento circular

Mensagem por Janx em Ter 19 Out 2010, 16:04

Para quem não intendeu a função que o vinians usou, lengthdir_x e lengthdir_y, seria o mesmo que usar:

Código:
x = xc + cos(degtorad(angulo))*raio;
y = yc - sin(degtorad(angulo))*raio;
angulo += 1; //roda no sentido horário
if (angulo > 360) angulo = 0;

degtorad -> Passar ANGULO para RADIANOS. A função sin/cos trabalha com radianos!

Notem que no SENO, eu coloquei o sinal de negativo, pois no plano cartesiano do computador (Tela), o Y é invertido!
OBS: Acredito que seja melhor usar o lengthdir_x/y pois é uma função interna do GM, portanto creio que possa ser um pouco mais rápida por já ter sido compilada.


Tópico Resolvido!
Trancado.

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Movimento circular

Mensagem por Conteúdo patrocinado Hoje à(s) 19:55


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