Entendendo Rotação e Ângulos

1

Tagged

Stats

6,938 visits, 8,043 views

Tools

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 1 Nov, 2015. Last updated 25 Feb, 2019

Rotação e Ângulos

Olá pessoal!

Este tutorial é uma introdução muito básica aos ângulos e rotações e como eles podem fazer os jogos funcionarem. É parte de uma série básica que estou escrevendo para ajudar crianças a aprenderem a usar Construct 2,

Fundamentos de Jogos 2D

Começando...um pouco sobre ângulos

Todos os ângulos podem ser medidos de uma série de maneiras. Alguns usam graus ou radianos, e ainda há métodos de bytes, mas já que Construct 2 usa somente radianos, isso é sobre o que eu vou falar.

Um ângulo pode ser compreendido como uma parte de uma volta, ou ainda como uma volta completa. Nós então usamos graus para medir o quanto foi rotacionado. Se você se levantar, olhar seu computador e então se virar 180 graus, você estaria olhando para a direção oposta. Se você rotacionar 360 graus, você teria girado em um círculo completo e estaria de volta onde começou.

Assim como nas coordenadas da tela, você tem ângulos relativos e ângulos absolutos. Um ângulo absoluto é medido em relação à tela. Se você olhar para um sprite no Construct, ele tem uma propriedade para ângulo. Ela começa com zero e é considerada como estando voltada para a direita. Se você ajustasse esse número, você notaria que pode pensar em um sprite como uma mão em um relógio no qual ângulos diferentes representam horas diferentes. A zero grau, ele está na posição das três horas. Em 90 graus, está na posição de seis horas. A 360 graus, o objeto está novamente voltado para as três horas.

Se você se lembrar que zero grau é sempre direita e 90 graus é um quarto de volta no sentido das horas, você pode ter uma boa ideia sobre em qual ângulo um objeto está.

Aqui vai um pequeno lembrete:

0 grau: face para a direita/leste

90 graus: face para baixo/Sul

180 graus: face para esquerda/Oeste

270 graus: face para cima/Norte

O que acontece com um objeto que tem um ângulo negativo, como -90? É simples, -90 graus está apontando para cima. É simplesmente rotacionar "para trás" ou no sentido contrário ao ponteiro do relógio em 90 graus. Sempre que você vir um ângulo negatvo, isso simplesmente significa que o objeto rotacionou na direção oposta à de um ângulo positivo.

Também você pode ter um ângulo como 450 graus, o que é a mesma coisa que ter um ângulo de 90 graus. Isso porque foi rotacionado 360 graus, o que é um círculo completo, e continuou rotacionando mais 90 graus. Se você girar duas vezes em sua cadeira então você terá rotacionado 720 graus, mas você ainda estará olhando para a mesma direção que estava no começo. Zero grau é o mesmo que 360 graus e o mesmo que 720 graus. O mesmo vale para números negativos.

Rotacionando um objeto na tela

Se você tem um objeto e quer rotacioná-lo, você pode fazer da mesma forma que se fosse movê-lo. Isto é, tudo o que você precisa é uma velocidade para adicionar ao seu ângulo. Se você adicionar 1 a um ângulo em cada frame então o objeto pareceria rotacionar no sentido dos ponteiros do relógio.

Nós usamos self.angle porque nós queremos adicionar ao ângulo em que o sprite já está. Se nós apenas ajustarmos o ângulo para 1, então o objeto sempre estaria no ângulo 1.

Nós também multiplicamos o +1 por dt para fazer esse objeto rotacionar por um grau, a cada segundo, to make this object rotate by 1 degree, every second, ao invés de em cada frame. Isso é realmente lento! Você pode fazer a velocidade aumentar adicionando um número maior ao ângulo do sprite, mas sempre tenha certeza que está usando dt. Isso garantirá que o jogo rode mais "suavemente" mesmo que a taxa de frames mude (você pode encontrar mais se procurar por dt no manual).

Mexa bastante com isso! Mude os números e teste. As aplicações para isso são muitas. Toda vez que você vir um objeto em um jogo rotacionando, ele está simplesmente mudando seu ângulo, frame a frame, em uma determinada quantidade de tempo.

Avise-me se houver qualquer dúvida!

Não entende o espaço da tela? Veja esse tutorial para o básico:

Entendendo posição na tela e velocidade

  • 1 Comments

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