Fusion Makers
Faça login para usufruir de todos nossos recursos. Ainda não tem uma conta? Inscreva-se já!
Conectar-se

Esqueci minha senha

Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
1 usuário online :: Nenhum usuário registrado, Nenhum Invisível e 1 Visitante :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 65 em Sex 01 Abr 2016, 22:48
Estatísticas
Temos 256 usuários registrados
O último usuário registrado atende pelo nome de Kallangod1

Os nossos membros postaram um total de 5265 mensagens em 574 assuntos

Movimento de 360º, O que é e como funciona...

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

Movimento de 360º, O que é e como funciona...

Mensagem por Skilo em Sex 21 Jan 2011, 14:43

Dificuldade: Avançado
Extensão necessária: Fast Loop Object (Obs: você pode usar os loops do MMF , eu uso a Fast Loop por costume mesmo)
Maker: MMF2
Ao som de: Otherside - Red Hot Chili Pepers

Bom, hoje vou ensinar como fazer um movimento de 360º visto de cima, que é o mais simples e fácil pra quem está aprendendo agora.
Antes de começar, é bom que você entenda um pouco sobre ângulos, seno e cosseno, para um melhor entendimento.
Nessa matéria, vou usar counters, que são mais fáceis de escrever os eventos(não vou complicar pra mim né XD).
Ok, primeiramente crie 4 counters:
  • Ângulo
    Velocidade
    X
    Y

Agora os eventos:

Código:
Start of Frame -> Set counter X to X("active") / Set counter Y to Y("active")

Código:
Alwas -> Set position X(active) to value("counterX") / Set position Y(active) to value("counterY")

Explicando:
A posição dos actives vai sempre se ajustar aos valores dos counters. O primeiro evento serve para os counters começarem com a posição do active, caso contrário ele começará nas posições 0 e 0.
Agora a velocidade:

Código:
Repeat while "Up Arrow" is pressed -> Add 1 to Counter("velocidade")
+ ("velocidade") < 10

Código:
Repeat while "Down Arrow" is pressed -> Sub 1 to Counter("velocidade")
+ ("velocidade") > -10

Eventos simples, "cima" aumenta a velocidade e "baixo" diminui.
Próximo:

Código:
Counter("velocidade") <> 0 -> Star Loop #0 for Abs(value("velocidade")) loop(s)

Como o movimento vai ser baseado nos loops, a quantidade se loops serão de acordo com a velocidade.
Nota: para usar o comando "abs", é necessário digitá-lo, não tem nenhum botão que faz ele aparecer =p
Ele tem a mesma função do módulo na matemática, tornar positivos os número negativos. E pra que fazer isso? Simples, mande o Fast Loop dar um número negativo de voltas e você verá XD

Código:
(Fast Loop): Loop trigger #0
+ Counter("Velocidade") > 0 -> Add Cos(value( "Angulo" )) to Counter X / Sub Sin(value( "Angulo" )) to Counter Y

Explicando: essa é a parte mais complicada de se entender, mas não é nada difícil.
Como exemplo vou usar o ângulo 0, veja:


Se o ângulo é 0, o objeto deverá andar nesta direção ->
Logo, somente a posição X deverá aumentar, enquanto a posição Y continua a mesma.
Agora um evento para andar pra trás:
Código:
(Fast Loop): Loop trigger #0
+ Counter("Velocidade") < 0 -> Sub Cos(value( "Angulo" )) from Counter X / Add Sin(value( "Angulo" )) from Counter Y

Praticamente a mesma coisa, a diferença é que ao invés de adicionar valores às posições nós subtraímos.

Pronto, o objeto já vai andar normalmente, para frente e para trás, mas ainda faltam duas coisinhas básicas:

1- Desaceleração:
Código:
X Repeat while "Up Arrow" is pressed -> Sub 1 from Counter("velocidade")
+ ("velocidade") > 10

Código:
X Repeat while "Down Arrow" is pressed -> Add 1 to Counter("velocidade")
+ ("velocidade") > -10

X indica uma ação negativa, ou seja, o comando negate.

2 - Alterar direção
Código:
Repeat while "Left Arrow" is pressed -> Add 3 to Counter("Angulo")

Código:
Repeat while "Right Arrow" is pressed -> Sub 3 from Counter("Angulo")

Meio óbvio =p, esses eventos servem para mudar de direção, eu usei o valor 3 porque se for só 1 ele gira muito devagar, com 3 fica bacana, mas isso fica a seu critério ^^

Pra finalizar, um evento para alterar a direção da animação:
Código:
Always -> Set Angle("Active") to value( "Angulo" ) (Quality = 1)

Bom pessoal, é isso, espero que tenham gostado da matéria e aprendido com ela, qualquer dúvida é só postar ok Wink

Matéria postada na BrMaker por Silas

OBS: Havia link para download de uam engine 360, mas ja havia expirado, por isso não consta na matéria.
avatar
Skilo
Usuário

Mensagens : 32
Data de inscrição : 28/01/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Movimento de 360º, O que é e como funciona...

Mensagem por Eskyz em Sex 21 Jan 2011, 17:40

Eu ainda me lembrava dessa matéria. Bravo, Silas, bravo! Explicadíssima! Até eu consegui fazer, seguindo passo-a-passo.

Agora vou fazer um jogo de 24H com essa matéria =D
Thanks.
avatar
Eskyz
Administrador
Administrador

Mensagens : 360
Data de inscrição : 28/02/2010
Idade : 20
Localização : Brasil

Ver perfil do usuário http://www.mmfmakers.rg3.net/

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