Entendendo posição na tela e velocidade

1

Taggé

Statistiques

3,491 visites, 4,106 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 30 Oct, 2015. Last updated 25 Feb, 2019

Posições e Velocidade

Olá pessoal!

Este tutorial é sobre posicionamento na tela e vetores e é uma parte de uma série que estou escrevendo:

2d Game Fundamentals

Se você não entende muito como funciona a animação em jogos 2D, espero que esse texto o ajude. Se você entende sobre uma seção em particular, sinta-se à vontade para avançar à próxima seção. Se algo não estiver claro por favor não hesite em me enviar uma mensagem ou deixar um comentário abaixo. Para aqueles que estão em minhas aulas, podem me contatar por e-mail.

X e Y - Descrevendo as posições

No espaço 2D nós podemos descrever a posição de um objeto usando dois valores que representam o local onde o objeto está no grid, mesmo que esteja invisível. Normalmente a isso se refere como uma coordenada 2D; X e Y. X descreve em qual coluna está o objeto e Y diz em qual linha ele está. É muito parecido com um bingo. Uma coordenada 2D poderia parecer com algo como esses exemplos: (56,2) ou (-1,3). O primeiro número é a posição X e nos diz quanto à esquerda ou à direita é a posição. O segundo número é Y e nos diz a posição acima ou abaixo do objeto.

O pixel no canto superior esquerdo de sua tela é sempre o pixel (0,0) - não (1,1). Isso pois os computadores sempre começam a contar do zero. Eles consideram que 0 é a primeira posição que um número pode ser. Isso significa que se sua tela tiver 640 pixels de largura, sua posição X será algo entre 0 e 639. Qualquer objeto na tela terá uma posição (x,y) e essa posição pode ser manipulada com a mudança desses valores.

Se você diminuir o valor da posição X de um objeto, isso irá parecer que está movendo esse objeto para a esquerda. Se adicionar, parecerá que o objeto está indo para a direita. Adicionando ao valor Y fará o objeto se mover para baixo e subtrair de Y fará o objeto subir.

Só para lembrar: Adicionar a X = direita; subtrair de X = esquerda; adicionar a Y = para baixo; subtrair de Y = para cima.

Quanto mais você lidar com as coordenadas (X,Y) mais natural isso se tornará, então não se preocupe se parece estranho à primeira vista.

Movendo um objeto usando a velocidade

Se você simplesmente mudar a posição de um objeto para onde desejar parecerá que ele se teletransportou. Ir de (10,10) a (100,100) é um grande salto. Se você quer que um objeto pareça estar se movendo de um lugar para outro então você precisa mudar gradualmente sua posição ao longo do tempo. Este é um processo simples.

No Construct 2, um objeto sprite já tem uma posição X e Y, então tudo o que você precisa fazer é criar duas variáveis, cada uma representando a velocidade no eixo X ou no eixo Y. Eu normalmente as chamo de velocityX e velocityY.

Em cada frame do jogo você então adiciona a velocidade a posição. Se parece com o que vem a seguir:

Veja que eu multipliquei a velocidade por dt. dt significa Delta Time (mudança de tempo) e nos diz quanto tempo se passou desde o último frame. Muitos jogos rodam a 60 frames por segundo, o que significa que o computador irá executar o código que você fizer 60 vezes por segundo. Nesse caso dt = 0.0166666 - ou 1/60. Considerando que queremos nossa velocidade em pixels por segundo (e não por frame) nós multiplicamos a velocidade por dt. Se nossa velocidade for 100 então por frame teríamos apenas de adicionar 1.6666 à posição do objeto. No decorrer de um segundo completo o total de mudanças será igual a 100.

velocidade dt frames por segundo = velocidade.

Aqui está uma planilha simples de velocidade. A velocidade do objeto está à esquerda, descrevendo o uso de X e Y. O objeto estaria se movendo como está escrito à direita.

(0,0) - não se move.

(1,0) - movendo à direita.

(-1,0) - movendo à esquerda.

(0,1) - movendo para baixo.

(0,-1) - movendo para cima.

(-1,-1) - movendo diagonalmente para cima e esquerda.

(1,-1) - movendo diagonalmente para cima e direita.

(-1,1) - movendo diagonalmente para baixo e esquerda.

(1,1) - movendo diagonalmente para baixo e direta.

Espero que tenha ajudado. Avise-me se houver dúvidas.

Introdução à rotação e ângulos

  • 0 Comments

Want to leave a comment? Login or Register an account!