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

Nenhum

[ Ver toda a lista ]


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

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

Movimento usando floating points (variáveis flutuantes)

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

Movimento usando floating points (variáveis flutuantes)

Mensagem por Davimmf2 em Dom 31 Ago 2014, 22:26

O que são floating points?
Floating points (pontos flutuantes) são números não-inteiros, por exemplo, 9.532, mas no mmf2, posições são guardadas em números inteiros (integers).Por exemplo, você mover um objeto 0.9 pixels para a direita, o objeto será movido 1 pixel para direita, pois o mmf2 arredonda para o número inteiro mais próximo.

Isso porque as coordenadas de um objeto são baseadas em pixels e não há um espaço entre dois pixels. O fusion só aceita mover números inteiros porque não há como mover “meio pixel”. Mas, acredite companheiro, objetos PODEM ser movidos em números não inteiros.

A técnica é usar dois alterable values para representar as posições dos objetos, por exemplo,  dois alterable values chamados Float X e Float Y. Isso porque alterable values podem guardar números não-inteiros.

Usando floating points
Primeiro, vamos criar um pequeno evento, usaremos como exemplo uma nave, com dois alterable values: Float X e Float Y:

  • Always
    Nave:  Set X Position to Float X (Nave)
    Nave:  Set Y  Position to Float Y(Nave).


Isso vai fazer com que a posição X e Y da nave seja igual aos alterable values float X e Float Y, respectivamente!
Agora, finalmente os movimentos em floating points! Para isso, faremos:



  • Repeat while player 1 pressed “right arrow”
    Nave: Add 2.75 to Float X


Isso vai adicionar 2.75 ao alterable value float X da nave se o jogador pressionar direita. Resumindo, vai adicionar 2.75 á posição X dela, já que a variável float X agora representa posição X do personagem.

Se você quiser que ele ande para direita, faça ao contrário, subtraindo, por exemplo, 2.75 do float X quando o jogador pressionar esquerda, assim como para cima e para baixo. A este ponto, você já deve saber fazer isso.


Alternativamente, você pode criar um alterable value chamado Velocidade, que representará a velocidade da nave.
Lembrando que o Fusion não aceita variáveis flutuantes no frame editor.  Ele simplesmente não aceita. Você deve alterar a variável velocidade usando eventos, se eu quiser definir a velocidade para 2.75, faremos:



  • Start of frame
    (Nave) set velocidade to 2.75


Agora, lembra daquele evento?



  • Repeat while player 1 pressed “Right arrow”
      Nave: Add 2.75 to Float X


Apague-o e substitua por:


  • Repeat while player 1 pressed “Right arrow”
      Nave: Add Velocidade(Nave) to Float X


Isso vai adicionar o valor velocidade á variável float X (duuh), resumindo, vai adicionar 2.75 á variável float X. Legal, não?

Mas, peraí! Quando executo a aplicação, o meu objeto fica no canto superior esquerdo da tela!
É porque os valores float X e Float Y representam as coordenadas X e Y do seu objeto. E seu valor é igual á zero, então o seu objeto fica nas posições 0 e 0.
Para isso, vamos fazer o seguinte evento:


  • Start of frame
      Nave: set Float X to X(Nave)
      Nave: Set Float Y to Y(Nave)


Isso vai fazer com que a variável float X seja igual á posição X da nave, assim como a variável float Y fica igual á posição Y da nave!

Notas
Nota¹:No Brasil, números não inteiros são representados por vírgulas, mas em alguns países são usados pontos, E o fusion é uma ferramenta estrangeira, sendo que, por exemplo, 1,5 vira 1.5.

Nota²: No Fusion, direções e ângulos também são convertidos em números inteiros. Ao armazenar valores flutuantes em alterable values, ​​você pode manter a precisão em seus cálculos.

Considerações finais
Bem, variáveis flutuantes são isso  Very Happy
Até a próxima.

Download da Engine Aqui
Tutorial e engine por: Chris Burrows (Ver Original)
e traduzido por Davi.
avatar
Davimmf2
Usuário

Mensagens : 155
Data de inscrição : 19/03/2014
Localização : Num planeta Muuuito distante, a 360 milhões de km da Terra: Marte

Ver perfil do usuário

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