Escena del jugador y acciones de entrada¶
En las próximas dos lecciones, diseñaremos la escena del jugador, registraremos acciones de entrada personalizadas y codificaremos el movimiento del jugador. Al final, tendrás un personaje jugable que se mueve en ocho direcciones.
Cree una nueva escena yendo al menú Escena en la esquina superior izquierda y haciendo clic en Nueva escena. Cree un nodo KinematicBody como raíz y asígnele el nombre Player.
Los cuerpos cinemáticos son complementarios al área y los cuerpos rígidos usados en el tutorial del juego 2D. Al igual que los cuerpos rígidos, pueden moverse y chocar con el entorno, pero en lugar de ser controlados por el motor de física, tú dictas su movimiento. Verá cómo usamos las características únicas del nodo cuando codificamos las mecánicas de salto y aplastamiento.
Ver también
Para obtener más información sobre los diferentes tipos de nodos de física, consulta Introducción a la física.
Por ahora, vamos a crear un equipo básico para el modelo 3D de nuestro personaje. Esto nos permitirá rotar el modelo más tarde mediante código mientras reproduce una animación.
Agregue un nodo Spatial como hijo de Player y asígnele el nombre Pivot. Luego, en el panel Sistema de Archivos, expanda la carpeta art/
haciendo doble clic en ella y arrastre y suelte player.glb
en el nodo Pivot.
Esto debería crear una instancia del modelo como hijo de Pivot. Puedes cambiarle el nombre a Character.
Nota
Los archivos .glb
contienen datos de escena 3D basados en la especificación GLTF 2.0 de código abierto. Son una alternativa moderna y poderosa a un formato propietario como FBX, que también es compatible con Godot. Para producir estos archivos, diseñamos el modelo en Blender 3D y lo exportamos a GLTF.
Al igual que con todo tipo de nodos de física, necesitamos una forma de colisión para que nuestro personaje choque con el entorno. Seleccione el nodo Player nuevamente y agregue una CollisionShape. En el Inspector, asigne una SphereShape a la propiedad Shape. La estructura alámbrica de la esfera aparece encima del personaje.
Será la forma que use el motor de física para colisionar con el entorno, por lo que queremos que se ajuste mejor al modelo 3D. Redúzcalo un poco arrastrando el punto naranja en la ventana gráfica. Mi esfera tiene un radio de unos 0,8
metros.
Luego, mueva la forma hacia arriba para que su parte inferior se alinee aproximadamente con el plano de la cuadrícula.
Puede alternar la visibilidad del modelo haciendo clic en el icono del ojo junto a los nodos Character o Pivote.
Guarde la escena como Player.tscn
.
Con los nodos listos, casi podemos comenzar a codificar. Pero primero, necesitamos definir algunas acciones de entrada.
Creando acciones de entrada¶
Para mover el personaje, escucharemos la entrada del jugador, como presionar las teclas de flecha. En Godot, aunque podríamos escribir todas las combinaciones de teclas en código, hay un poderoso sistema que te permite asignar una etiqueta a un conjunto de teclas y botones. Esto simplifica nuestros scripts y los hace más legibles.
Este sistema es el Mapa de Entrada. Para acceder a su editor, dirígete al menú Proyecto y selecciona Configuración del proyecto….
En la parte superior, hay varias pestañas. Haga clic en Mapa de entrada. Esta ventana le permite agregar nuevas acciones en la parte superior; son tus etiquetas. En la parte inferior, puede vincular teclas a estas acciones.
Los proyectos de Godot vienen con algunas acciones predefinidas diseñadas para el diseño de la interfaz de usuario, que podríamos usar aquí. Pero estamos definiendo el nuestro para admitir mandos.
Vamos a nombrar nuestras acciones move_left
, move_right
, move_forward
, move_back
y jump
.
Para agregar una acción, escriba su nombre en la barra en la parte superior y presione Entrar.
Para agregar una acción, escriba su nombre en la barra en la parte superior y presione Entrar.
Para vincular una tecla o botón a una acción, haga clic en el botón "+" a su derecha. Haz esto para move_left
y en el menú desplegable, haz clic en Tecla.
Esta opción le permite agregar una entrada de teclado. Aparece una ventana emergente y espera a que presione una tecla. Presione la tecla de flecha izquierda y haga clic en Aceptar.
Haz lo mismo para la tecla A.
Ahora agreguemos soporte para el joystick izquierdo de un mando. Haga clic en el botón "+" nuevamente, pero esta vez, seleccione Eje del Mando.
La ventana emergente le ofrece dos menús desplegables. A la izquierda, puede seleccionar un mando por índice. Dispositivo 0 corresponde al primer mando conectado, Dispositivo 1 corresponde al segundo y así sucesivamente. Puede seleccionar la palanca de mando y la dirección que desea vincular a la acción de entrada a la derecha. Deje los valores predeterminados y presione el botón Agregar.
Haga lo mismo para otras acciones de entrada. Por ejemplo, vincule la flecha derecha, D y el eje derecho del joystick izquierdo a move_right
. Después de vincular todas las teclas, su interfaz debería verse así.
Sólo nos queda establecer la acción jump
. Vincula la barra espaciadora y el botón A del mando. Para vincular un botón de un mando, selecciona la opción Botón del mando en el menú desplegable.
Deje los valores predeterminados y haga clic en el botón Add o añadir.
Tu acción de entrada jump debería verse así.
Esas son todas las acciones necesarios por el juego. Puede usar este menú para designar cualquier grupo de tecla o botón en sus proyectos.
En el siguiente parte, vamos a programar y verificar el movimiento de jugador.