martes, 19 de mayo de 2020

Teoría básica de Godot

Vectores y sistema de coordenadas 2d

En el 2d se usan los vectores para ubicar una posición en el plano cartesiano
La primera regla es que la orientación desde el punto hacia arriba es negativa y desde el punto hacia a bajo es positiva


La función process (Delta)

El motor de juego intenta procesarse a 60 fps pero muchas veces los computadores o el mismo software no puede procesarlos de forma consistente. Para ello se utiliza el parámetro delta. si tenemos un objeto configurado para que se mueva 10 pixeles en cada fotograma. Si todo funciona correctamente se ejecutarían 600 pixeles e un segundo (10*60(fps)). Pero si se demora y se ejecutaron 50 fps entonces el objeto se movería 500 pixeles en un segundo. 
¿Como se soluciona?
Con el parámetro Delta el cuál contiene el tiempo transcurrido desde el fotograma anterior. La mayoría de las veces es 0.016 segundos (16 milisegundos). Si tomas la velocidad que deseas (en el ejemplo serían 600 px/s) y la multiplicas por delta entonces obtendrás un movimiento exacto de 10px.
Velocidad deseada expresada en px/s * Delta

Física de los cuerpo rígidos 

Cuando desarrollamos juegos es común saber contra que objeto estamos colisionando y que debemos hacer en pos de esa colisión. esto se conoce como "detección de colisión" y cuando la detecta se le conoce como "respuesta de colisión". Para trabajar con físicas se utilizan los siguientes nodos:

1. StaticBody2D

Un nodo estático no es movido por el motor de físicas ya que como su nombre lo dice, se espera que el nodo sea fijo.  Se suele utilizar para paredes, suelo, plataformas, objetos del entorno, etc. Pero si participa en la detección de colisiones. Podemos programar una plataforma y si detecta al player ella puede saber cuando el player a entrado en colision

2. RigidBody2d

Este cuerpo físico provee física simulada. Aquí es donde el motor puede programar un monton de comportamientos como gravedad, impulso, rebotes, etc.). No se controla directamente si no que se aplica una fuerza

3. KinematicBody2D

Este tipo de cuerpo provee detección de colisiones pero no tiene físicas simuladas. Todos los movimientos deben ser aplicados a código al igual que las respuestas 

No hay comentarios:

Publicar un comentario