Conectar-se
Quem está conectado
28 usuários online :: 3 usuários cadastrados, 1 Invisível e 24 Visitantes

hendrickxr, PedroX, rafaelviodres1

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 19/02/2009
Número de Mensagens : 226
Insígnias de JAM :

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

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

[Resolvido]Movimento circular

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)
avatar
Data de inscrição : 16/10/2010
Número de Mensagens : 27
Insígnias de JAM :

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

Re: [Resolvido]Movimento circular

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.
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: [Resolvido]Movimento circular

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.



avatar
Data de inscrição : 16/10/2010
Número de Mensagens : 27
Insígnias de JAM :

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

Re: [Resolvido]Movimento circular

em Ter 19 Out 2010, 15:42
Realmente um script notável vinians, como todos que vejo de sua autoria.
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 19/02/2009
Número de Mensagens : 226
Insígnias de JAM :

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

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

Re: [Resolvido]Movimento circular

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.
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

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

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

Re: [Resolvido]Movimento circular

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.
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