¡Te saludo, Khabrovites! Como prometí al final del último artículo , dirigí mis ojos al motor del juego. Es cierto, me gustaba más Godot.

Por qué El tema para un artículo separado es la reflexión, pero no sé cómo pensar durante mucho tiempo y, especialmente, pensar.
A pesar del hecho de que Pong está en la lista de proyectos de capacitación de motores propuestos, decidí comenzar con él. En primer lugar, este es el juego más simple que se me ocurrió. En segundo lugar, el Pong propuesto en los materiales de capacitación está altamente modernizado. Quiero hacerlo lo más parecido al original que pueda imaginar.
Por lo extraño del aprendizaje, decidí crearlo usando las herramientas de programación visual incorporadas, que estoy haciendo por primera vez.
Atencion Debajo del corte muchas capturas de pantalla.
Como el código fuente de este proyecto no pertenece a nadie, lo publiqué en GitHub .
Y para todos los que deseen leer mi experiencia de bienvenida bajo cat.
Comencé con la creación del proyecto, el beneficio aquí es que este proceso no difiere fundamentalmente de otros lenguajes de programación o motores de juegos:
- Puede elegir una carpeta donde se almacenarán todos los datos del proyecto.
- Esta carpeta debe estar vacía en el momento de la creación del proyecto.
- Si esta carpeta no está vacía, puede crear una nueva carpeta
El único elemento no estándar es la capacidad de seleccionar una biblioteca de gráficos al crear un proyecto. Sin embargo, de acuerdo con la ventana de creación del proyecto, esta configuración se puede cambiar más tarde, pero es posible que deba volver a configurar las escenas.
Puede leer más sobre la diferencia entre las versiones 2 y 3 en la documentación del motor , y en Wikipedia se pueden encontrar listas de dispositivos que admiten diferentes versiones de la biblioteca.
Personas que tienen dificultad con el inglés.Recomendaría abordar estas dificultades lo antes posible, pero por ahora la interfaz del motor se puede traducir a curva Idioma ruso, pero no haré esto.
De acuerdo con la totalidad de los artículos anteriores, si quiero jugar mi una obra maestra en mi RaspberryPI 3 necesito usar OpenGL ES 2.0. Entonces lo hice. Especialmente porque no planeo usar ninguna de las capacidades de la tercera versión de la biblioteca.
La ventana del motor se abre por defecto en modo 3D. A la izquierda y derecha de la ventana principal están los campos para las ventanas auxiliares. La parte principal de la ventana muestra: escena 2D, escena 3D, editor de guiones o tienda de activos. Dependiendo del modo seleccionado.
En la interfaz, por defecto, en la parte superior izquierda está la pestaña "Escena" en Unity, su contraparte se llama "Jerarquía".
Esta pestaña muestra todos los objetos de la escena organizados en una estructura de árbol . Al crear un proyecto, no hay nodos allí, y hay una pista para crear un nodo raíz.
Pong: el juego es bidimensional y, por lo tanto, el nodo raíz será "Escena 2D", esto transfiere automáticamente la parte principal de la ventana al modo 2D. Un doble clic con una pausa o la opción de cambiar el nombre en el menú contextual le permite cambiar el nombre del nodo (nota f2 realiza otra acción aquí). Voy a nombrar mi "World2D".
Entonces es hora de ahorrar.
Creé una carpeta separada para escenas en la carpeta del proyecto, porque planeo crear al menos una escena más para el menú de inicio. Y en este momento, la carpeta del proyecto contiene archivos estándar y no quiero confundir los recursos que creé con ellos.
El nombre de la única escena del juego que suelo usar es "Principal". El motor ofrece tres formatos para guardar la escena, pero solo TSCN se describe en la documentación .
Soy como un hombre erguido el inquisitivo guardó la escena en los tres formatos y se aseguró de que los otros dos archivos sean binarios. Esto me convenció de la conveniencia de almacenar las escenas en el formato TSCN.
El siguiente paso es ajustar la apariencia de la escena.
Aquí puede cambiar todas las configuraciones necesarias.
Esta configuración le permite cambiar el color de fondo de la escena. (Pong tiene fondo negro)
Y en esta pestaña, le aconsejo que pruebe todas las configuraciones y descubra lo que hacen. Presta especial atención al comportamiento del bloque Estirar al cambiar la ventana del juego en el depurador. Para ver los cambios, primero puede agregar cualquier imagen a la escena, por ejemplo, el icono de Godot.
Ya sé cómo debería verse la escena de mi versión de Pong y la configuración debería ser como en la siguiente pantalla.
Y, por supuesto, no tomé esta configuración del techo. Y miró la pantalla del juego original y vio que el valor más pequeño era el ancho de la cuadrícula. La altura de la línea que simboliza la cuadrícula era aproximadamente tres veces su ancho. Y había 30 de esas líneas, separadas por espacios de la misma longitud que la línea. En lo que los huecos también fueron 30 piezas.
Si tomamos el ancho de la cuadrícula para un píxel, obtenemos la altura de la pantalla 3 * 2 * 30 = 180.
Como todavía quiero hacer un juego para monitores modernos, y la mayoría de los monitores modernos tienen una relación de aspecto de 16: 9, el ancho debe ser 180/9 * 16 = 320.
Sobre esto, creo que vale la pena completar esta parte, en la próxima aprenderé cómo crear una pelota y describir su comportamiento. Gracias por su tiempo, esperando su crítica en los comentarios.