Crear la escena del jugador
Con la configuración del proyecto en su lugar, podemos comenzar a trabajar en el personaje controlado por el jugador.
La primer escena define el objeto Player. Uno de los beneficios de crear una escena aparte para el jugador es que se puede probar de manera separada, aún antes de haber creado otras partes del juego.
Estructura de nodos
Para empezar, necesitamos elegir un nodo raíz para el objeto jugador. Como regla general, el nodo raíz de una escena debe reflejar la funcionalidad deseada del objeto - lo que el objeto es. Haz clic en el botón "Otro Nodo" y añade un nodo Area2D a la escena.
Cuando agrega el nodo Area2D, Godot mostrará el siguiente icono de advertencia junto a él en el árbol de escena:
Esta advertencia nos indica que el nodo Area2D requiere una forma para detectar colisiones o superposiciones. Podemos ignorar la advertencia temporalmente, ya que primero configuraremos las imágenes del jugador (usando un sprite animado). Una vez que las imágenes estén listas, agregaremos una forma de colisión como nodo secundario. Esto nos permitirá ajustar el tamaño y la posición de la forma con precisión según la apariencia del sprite.
Con Area2D podemos detectar objetos que se superponen o entran en contacto con el jugador. Cambia el nombre del nodo a Player haciendo doble clic en él. Este es el nodo raíz de la escena. Podemos añadir nodos adicionales al player para añadir funcionalidad.
Antes de añadir un hijo al nodo Player, queremos asegurarnos de que no los movemos o re-dimensionamos accidentalmente haciendo clic sobre ellos. Selecciona el nodo y haz clic en el icono a la derecha del candado; su tooltip dice "Asegura que los hijos del objeto no son seleccionables."
Guarda la escena como player.tscn. Haz clic en Escena -> Guardar o presione Ctrl + S en Windows/Linux o Cmd + S en macOS.
Nota
Para este proyecto, seguiremos las convenciones de nomenclatura de Godot.
GDScript: Clases (nodos) usan PascalCase, variables y funciones utilizan snake_case, y las constantes TODO_MAYUSCULAS (Lee Guía de estilo de GDScript).
C#: Las clases, las variables de exportación y los métodos usan PascalCase, los campos privados usan _camelCase, las variables y los parámetros locales usan camelCase (Véase Guía de estilo de C#). Ten cuidado de escribir los nombres de los métodos de manera precisa al conectar señales.
Animación del sprite
Click on the Player node and add (Ctrl + A on Windows/Linux or
Cmd + A on macOS) a child node AnimatedSprite2D. The AnimatedSprite2D will handle the
appearance and animations for our player. Notice that there is a warning symbol
next to the node. An AnimatedSprite2D requires a SpriteFrames resource, which is a list of the animations it can
display. Make sure AnimatedSprite2D is selected and then find the Sprite Frames property under
the Animation section in the Inspector and click "[empty]" -> "New SpriteFrames":
Haz clic en el SpriteFrames que acaba de crear para abrir el panel "SpriteFrames":
A la izquierda hay una lista de animaciones. Haz clic en la animación predeterminada y cámbiale el nombre a "caminar". Luego, haz clic en el botón Añadir animación para crear una segunda animación llamada "arriba".
Find the player images in the FileSystem dock - they're in the art folder
you unzipped earlier. Drag the two images for each animation, into the
Animation Frames side of the panel for the corresponding animation:
playerGrey_walk1yplayerGrey_walk2para la animaciónwalkplayerGrey_up1yplayerGrey_up2para la animaciónarriba
Las imágenes del player son un poco grandes para la ventana del juego, así que tenemos que reducirlas. Haz clic en el nodo AnimatedSprite2D y establezca la propiedad Scale en (0.5, 0.5). Puedes encontrarla en el Inspector bajo la sección Node2D.
Finalmente, añade un CollisionShape2D como hijo de Player. Esto determinará el "hitbox" del jugador, o los límites de su área de colisión. Para este personaje, un nodo CapsuleShape2D sería el más indicado ya que se ajusta mejor a la imagen, así que junto a "Shape" en el Inspector, haz clic en "<vacío>" -> "Nuevo CapsuleShape2D". Usando los dos manejadores de tamaño redimensiona la forma de colisión para cubrir el sprite:
Cuando hayas terminado, tu escena Player debería verse así:
Una vez hecho esto, la advertencia en el nodo Area2D desaparecerá, ya que ahora tiene una forma asignada y puede interactuar con otros objetos.
Estate seguro de salvar la escena de nuevo después de estos cambios.
En la siguiente parte, agregaremos un script al nodo de Player para moverlo y animarlo. Luego, configuraremos la detección de colisiones para saber cuándo el jugador fue golpeado por algo.