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

Participe do fórum, é rápido e fácil

Fusion Makers
Faça login para usufruir de todos nossos recursos. Ainda não tem uma conta? Inscreva-se já!
Fusion Makers
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Últimos assuntos
» Ideia: MMFMakers, do zero
por mediamaker Qua 26 Maio 2021, 12:28

» [Flash] Haunt the house
por mediamaker Sab 19 Set 2020, 16:47

» Como a criar passo a passo engine de Movimento Grid com colisão (tipo Bomberman) completo usadno extensão Array?
por mediamaker Sex 15 Set 2017, 14:19

» CF2.5 -> 26 reais na steam
por Matheus290 Ter 22 Dez 2015, 17:52

» Aplicação com Editbox não tá rodando online
por Matheus290 Sab 19 Set 2015, 01:38

» A Guilda continua!!!! "Âncora Team" (novo nome)
por weliowl7 Qua 16 Set 2015, 01:52

» Sub-application e Inventario
por majorcorps Dom 23 Ago 2015, 13:11

» Efeito de string
por majorcorps Sab 22 Ago 2015, 19:55

» [PC] Pitiri 1997
por Matheus290 Sab 20 Jun 2015, 17:10

» Teclado virtual com Edit Box
por mediamaker Sab 20 Jun 2015, 14:10

Quem está conectado?
2 usuários online :: 0 registrados, 0 invisíveis e 2 visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 239 em Qui 08 Abr 2021, 12:32
Estatísticas
Temos 256 usuários registrados
O último usuário registrado é Sitydistta

Os nossos membros postaram um total de 5268 mensagens em 575 assuntos

Movimento usando floating points (variáveis flutuantes)

Ir para baixo

Movimento usando floating points (variáveis flutuantes) Empty Movimento usando floating points (variáveis flutuantes)

Mensagem por Davimmf2 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.
Davimmf2
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

Ir para o topo Ir para baixo

Ir para o topo


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