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
2 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 2 Visitantes

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 usando floating points (variáveis flutuantes)

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

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum