Movimento circular ao redor de outro objeto

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

Movimento circular ao redor de outro objeto

Mensagem por marcin_w_ em Sex 13 Mar 2015, 14:55

Vamos imaginar o objeto1 como uma arma que gira 360º

Preciso de um objeto2 que fique grudado em uma das extremidades da arma enquanto ela gira para dar o efeito de que o objeto2 está controlando o objeto1(arma)

Claro que seria fácil fazer isso através de sprites, porém não no meu top down shooter por 2 razões:

o objeto1(arma) é um fake 3d

o objeto2 tem 8 direções com sprites diferentes

Então acho que vcs ja perceberam o quanto está sendo dificil para mim criar esse efeito uma vez que sou fissurado por perfeccionismo.

quem puder ajudar de qualquer forma eu agradeço

vlw galera!

marcin_w_

Número de Mensagens : 77
Idade : 26
Data de inscrição : 25/11/2012
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Movimento circular ao redor de outro objeto

Mensagem por vinians em Sex 13 Mar 2015, 15:11

Primeiro coloque centralize a origem do sprite que vai fica no centro. Basta fazer Sprite->Center.
No evento CREATE do objeto que vai ter o outro rodando em volta:
Código:

angulo = 0; // angulo atual do objeto bolinha
raio = 100; // raio do circulo que ele vai fazer
in = instance_create(x, y, objBola);
No evento STEP:
Código:

var dx, dy;
dx = cos(angulo) * raio + x;
dy = sin(angulo) * raio + y;
angulo += 5; // velocidade de rotaçao
in.x = dx;
in.y = dy;
Pronto assim ele já estará girando...
Flws!

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

Re: Movimento circular ao redor de outro objeto

Mensagem por marcin_w_ em Sex 13 Mar 2015, 15:34

então vinians, sua ideia deu muito mais certo doq qualquer outra minha, porém o objeto fica em constante rotação e como esse código é novo pra mim nao consigo achar uma forma de adaptar o objeto para se movimentar apenas quando a arma rotacionar de acordo com a direção da arma.

mas muito obrigado esse código vai ser muito útil em uma outra situação que tenho aqui.

marcin_w_

Número de Mensagens : 77
Idade : 26
Data de inscrição : 25/11/2012
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Movimento circular ao redor de outro objeto

Mensagem por vinians em Sex 13 Mar 2015, 15:38

Para adaptar batas você desligar a rotação automática no evento STEP:
Código:

//angulo += 5;
E depois você pode mudar o valor dessa variavel angulo para a direcao que você quizer, por exemplo com teclado:
Código:

if (keyboard_check_pressed(ord('Z'))) angulo -= 5;
if (keyboard_check_pressed(ord('C'))) angulo += 5;
Pronto, agora quando você apertar a tecla Z e C ele muda o angulo do objeto.

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

Re: Movimento circular ao redor de outro objeto

Mensagem por marcin_w_ em Sex 13 Mar 2015, 15:46

Perfeito! funcionou muito bem! sempre quis descobrir como fazer isso...
o único detalhe que me falta é que preciso que ele obedeça a rotação da arma que é independente....não sou eu que controlo...ela tem seus próprios alvos

porém mais uma vez esse código vai me servir !

marcin_w_

Número de Mensagens : 77
Idade : 26
Data de inscrição : 25/11/2012
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Movimento circular ao redor de outro objeto

Mensagem por Conteúdo patrocinado Hoje à(s) 09:36


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