¡Te saludo, Khabrovites! En esta parte, crearé y personalizaré la pelota para el juego Pong. Si te perdiste el comienzo, entonces está aquí . El nivel del artículo sigue siendo un principiante.
Debajo del corte, todavía hay muchas capturas de pantalla.
Llame a los niños y bienvenidos bajo gato.
Para editar, el proyecto se abre haciendo doble clic en el nombre del proyecto o mediante el botón "Editar".

Cuando reinicia el motor, la escena creada anteriormente no se abrió. Puede abrirlo haciendo doble clic en él en el panel "Sistema de archivos", el panel analógico en Unity se llama Proyecto.
Ahora puede crear la bola, el orden correcto para este motor, el cuerpo físico y sus dos herederos: el colisionador y los gráficos. Pero lo haré en un orden diferente, y al mismo tiempo le diré por qué se necesita este orden de nodos.
Lo primero que quiero hacer con el balón es verlo. Por lo tanto, comenzaré con los gráficos. Puedo dibujar un cuadrado blanco de 3 por 3 píxeles en cualquier editor de imágenes. Sin embargo, no me gusta hacer en un programa de terceros, lo que puedo hacer directamente en el motor.
Para agregar un nodo a la escena, haga clic en el signo más en el panel de escena. (Por supuesto, es posible usar el menú contextual o las teclas de acceso rápido)

Aparece una gran lista de varios tipos de nodos en la ventana que se abre. Todos deben ser vistos, idealmente leídos sobre cada uno de los nodos en la documentación , o al menos ver todos los nodos directamente en la lista leyendo la descripción de cada uno de ellos.
Esto ayudará a comprender mejor qué nodos hay en el motor y qué hacer con ellos. Y para nuestro objetivo actual, el nodo Polygon2D es adecuado.

De forma predeterminada, todos los nodos se crean como elementos secundarios en relación con el nodo raíz. Si necesita crear un nodo secundario para un nodo específico, debe crearlo seleccionando primero el nodo principal. Obviamente, esto no es necesario con el nodo raíz.
Es hora de prestar atención al lado derecho de la ventana, hay un panel de inspección.

Para los más pequeñosUn cuadrado es una figura geométrica que consta de 4 ángulos y 4 lados, con todos los lados iguales entre sí.
El tamaño del polígono determina el número de ángulos, después de lo cual aparece una lista de puntos, cuyas coordenadas deben ingresarse, personalmente prefiero comenzar desde la esquina superior izquierda y mover en sentido horario alrededor de los puntos. Esbozando una figura alrededor del centro. Por defecto, en Godot, el centro de todos los nodos es la esquina superior izquierda de la escena. Y se permite la introducción de fracciones de píxeles.

Ahora puede configurar "Transformar" y colocar la pelota en el centro de la escena.
Para verlo mejor, debes aumentar ligeramente la escena del juego en la parte principal de la ventana.
Desplazar el desplazador con el mouse le permite ampliar y reducir la escena, y al hacer clic en el desplazador y mover el mouse, se mueve la escena.

Ahora necesita hacer que la pelota se mueva, y hay dos formas principales:
- Puede cambiar la configuración de "Transformar" y mover la pelota de la misma manera que la moví al centro del escenario pero, usando el código del programa, y sin problemas.
- Y puede agregar a este gráfico un nodo de un elemento físico como se llama "Sólido" u "Objeto físico". Y mueva el efecto del motor físico sobre este objeto.
El motor físico le permite usar los movimientos más precisos, suaves y creíbles sin tener que describir todos los cálculos complejos usted mismo.
Además, además del movimiento de la pelota, ¿aún necesitamos determinar si la pelota ha encontrado el borde de la pantalla? Si se enfrenta, ¿qué frontera? ¿La pelota golpeó una raqueta? Si te enfrentas a cuál de las raquetas y qué parte? Pero estas cosas son más fáciles de verificar utilizando un motor físico.
En general, hay un esquema muy simple para esta elección. Si todos los objetos del juego se mueven a lo largo de la cuadrícula y hay una cola de movimiento. Por ejemplo, en el ajedrez, un jugador negro no comienza su turno antes de que el jugador blanco complete su movimiento. Y ninguno de los jugadores tiene derecho a mover varias piezas a la vez.
En tales juegos, es conveniente cambiar directamente la configuración de "Transformar".
Para todos los demás casos, hay un motor de física.
Ahora, creo que es obvio que es más conveniente usar el motor de física en el juego Pong.
Para hacer esto, necesita la pelota, ahora este es el nodo "Polygon2D" agregue el nodo "PhysicsBody2D"

Pero hay tres de estos nodos: cinemático, rígido y estático. Según la descripción:
- La cinemática es un objeto físico que se mueve de acuerdo con el código del programa escrito, no obedece al motor físico. (Nuestra opción)
- Rígido es un objeto físico completamente subordinado al motor físico.
- Estático es un objeto físico inmóvil.
Los análogos de estos nodos están disponibles en todos los motores de juegos que conozco, y en Unity tienen los mismos nombres y propiedades.
Después de agregar el nodo "KinematicBody2D", aparece una notificación de error.

Al pasar el mouse sobre él, queda claro que la causa del error es la falta de una máscara de colisionador para este nodo, en este caso me ofrecieron una de dos opciones: CollisionShape2D o CollisionPoligon2D.
Ya intenté crear un polígono, ahora quiero ver el formulario. Que en la creación informa otro error. Esta vez ella dice que la máscara parece estar allí, pero nadie creó la forma de la máscara.
Se crea en el panel "Inspector". Para nuestro cuadrado, la forma "RectangleShape2D" es adecuada con las siguientes configuraciones.

Ahora puede comenzar a mover la pelota por la pantalla, pero con el motor físico solo puede mover el "cuerpo físico" con todos los herederos y se moverá en relación con su padre. En este caso, el cuerpo junto con el colisionador se moverá en relación con el cuadrado dibujado en el escenario, que permanecerá estacionario en la pantalla. La solución es muy simple:
- Para que el cuerpo físico se mueva en relación con la escena, debe convertirse en un nodo hijo de la escena.

- Para que el cuadro dibujado se mueva con el cuerpo físico, debe hacerse niño con respecto al cuerpo físico.

Ahora moviendo el cuerpo físico, moveré la máscara de colisión junto con el cuadrado dibujado.
La pelota está lista para moverse, la próxima vez finalmente la lanzaremos y veremos cómo se verá en el juego.
Estaré feliz por sus críticas en los comentarios.