Conceptos

Los conceptos básicos de GDevelop son simples. lee las siguientes explicaciones para empezar con el programa.

Sistema de coordenadas

Los objetos en la escena poseen una coordenada X y una Y, que corresponden a las posiciones horizontal (eje X) y vertical (eje Y) en un Plano cartesiano.

Las coordenadas del cursor pueden verse en la barra de estado del Editor de Escenas:


Como se muestra en la imagen a continuación, la coordenada X disminuye al desplazarte hacia la izquierda, y aumenta al hacerlo hacia la derecha, mientras que la coordenada Y disminuye al desplazarte hacia arriba y se incrementa hacia abajo.

Para rotar objetos, necesitarás especificar el ángulo deseado en grados. observa debajo como GDevelop entiende los ángulo de rotación:

Si utilizas funciones trigonométricas como seno o coseno, ten en cuenta que tendrás que expresar el ángulo en radianes. ( 1 radián = 180/PI grados y 1 grado = PI/180 radianes, siendo PI el famoso número que es aproximadamente 3.14159 )


Selección de objetos por eventos

La mayoría de las condiciones y acciones se refieren a los objetos, la forma de evaluarlos y modificarlos. Una acción sin condiciones se referirá a todos los objetos. Si utilizas un objeto por primera vez en un evento, GDevelop evaluará o modificará todos los objetos con ese nombre en la escena. Si utilizas el objeto en el mismo evento de nuevo, GDevelop evaluará o modificará sólo los objetos que hayan sido tomados por condiciones anteriores.

Este proceso es una mera aplicación de lógica. Este evento eliminará todos los objetos llamados “Cuadrado”:

En cambio, este evento eliminará sólo los objetos “Cuadrado” cuya posición X sea inferior a 100:


Eventos: el orden es importante

El orden de los eventos es importante: los eventos superiores son ejecutados primero. Así que el siguiente par de eventos no es equivalente:

El primero crea un objeto “Cuadrado” en la posición 200;100 y luego elimina todos los objetos Cuadrado. Ningún “Cuadrado” es mostrado en pantalla.
El segundo par elimina todos los objetos “Cuadrado” de la escena, y luego crea un “Cuadrado” en la posición 200;100, por lo que un Cuadrado permanece visible.


Moviendo objetos usando las fuerzas integradas

Puedes mover objetos gracias a las fuerzas, que son usadas para “empujar” estos objetos.

Puedes especificar las coordenadas cartesianas de las fuerzas (i.e. X e Y, en píxeles) o sus coordenadas polares (el ángulo y longitud del vector fuerza), y el amortiguamiento, un coeficiente entre 0 y 1. Cada segundo, la longitud de la fuerza será multiplicada por el amortiguamiento: un amortiguamiento de valor 1 generará una fuerza que continua por siempre, un valor de 0 hará que se la fuerza se detenga inmediatamente. Valores intermedios harán que la fuerza se reduzca paulatinamente hasta desaparecer.

Ejemplo

Digamos que quieres mover un objeto hacia abajo:

Puedes agregar una fuerza definida por coordenadas X/Y, específicamente 0 para la coordenada X y, por ejemplo, 150 píxeles para la coordenada Y. También puedes utilizar coordenadas polares, agregando una fuerza con un ángulo de 90°, y una longitud de 150 píxeles.

Otras formas de mover objetos

Algunas extensiones como los automatismos Motor Físico y Búsqueda de Ruta pueden mover objetos utilizando su propio sistema. En este caso, es mejor no utilizar el sistema de fuerzas integradas y limitarse a las acciones provistas por las extensiones usadas.


Variables

Las variables te permiten almacenar datos, por ejemplo un número o un texto. Podríamos compararlas con cajas donde guardar información. Cualquier tipo de dato puede ser almacenado, siempre que esté en formato de texto o número: cantidad de vidas restantes, máximas puntuaciones, munición restante, enemigos asesinados, etc… Probablemente usarás números muy seguido.

Las acciones y condiciones modifican y evalúan el valor de una variable.


Ámbitos de variables

El ámbito de una variable determina desde dónde se puede acceder a ella. En GDevelop, hay disponibles tres ámbitos de variables:

Global: Las variables globales pueden ser accedidas desde cualquier escena del juego; Por ejemplo, pueden ser usadas para almacenar el puntaje obtenido a través de diferentes niveles;
Escena: Las variables de escena sólo pueden ser accedidas desde una escena (la escena que las contiene). Pueden ser utilizadas para datos que conciernen a sólo una escena, y no al juego completo. como el tiempo restante antes de una explosión en el nivel 4;
Objeto: Las variables de objeto sólo le pertenecen a un objeto. Por ejemplo, un héroe puede tener una variable “Salud” o “Armadura”.


Tiempo transcurrido desde el último fotograma (TimeDelta)

El juego evalúa los eventos y pinta la pantalla varias veces por segundo: decimos que el juego se refresca. Que tan seguido sucede depende de los recursos de tu computadora: una computadora lenta puede renderizar (pintar) 25 fotogramas por segundo, una rápida más de 140. GDevelop usualmente puede asegurarse de que este valor sea el mismo en todas las computadoras, sin embargo la velocidad de algunas operaciones puede variar de computadora a computadora, por ejemplo operaciones matemáticas y el renderizado de movimientos. La velocidad a la que se ejecuta el juego también depende, por supuesto, de la complejidad del juego en sí (el número de eventos, cantidad de objetos, etc.)

Para hacer la velocidad de los cambios constante, usa la expresión TimeDelta(), que devuelve el tiempo en segundos transcurrido desde el último fotograma. Por ejemplo, no hagas lo siguiente:

Has esto en su lugar:

El primer evento agrega 20 unidades a la variable cada vez que el juego se refresca ( i.e. siempre que se pueda). No es correcto utilizar este evento ya que la velocidad a la que la variable se incrementa no será la misma de computadora a computadora: No podemos predecir el valor de la variable transcurridos 10 segundos, por ejemplo.
El segundo evento sería la forma correcta y segura : El número 300 es multiplicado por TimeDelta(). Por lo tanto, la variable se incrementará a la misma velocidad en todas las computadoras. Como TimeDelta() devuelve el tiempo en segundos, puedes cuantificar las cantidades exactamente: En nuestro caso, la variable se incrementará a 300 unidades/segundo. De esta forma, podríamos predecir el valor que tendrá en 10 segundos.

Recuerda utilizar TimeDelta cuando quieres agregar cierta cantidad continuamente a un valor.

Cuando mueves un objeto utilizando fuerzas, no hay necesidad de usar TimeDelta(), ya que GDevelop lo utiliza automáticamente.
Tampoco debes usar TimeDelta cuando los valores con los que trabajas no dependen del tiempo, como el número de enemigos derribados, por ejemplo.

Y eso es casi todo lo que necesitas saber

Puedes continuar leyendo la Guía de Inicio para comenzar a ver la interfaz de GDevelop.