Creating the player scene

With the project settings in place, we can start working on the player-controlled character.

La prima scena definirà l'oggetto Player. Uno dei vantaggi di creare una scena separata per il giocatore è che possiamo testarla separatamente, anche prima di aver creato altre parti del gioco.

Struttura del nodo

Per iniziare, dobbiamo scegliere un nodo radice per l'oggetto giocatore. Come regola generale, il nodo radice di una scena dovrebbe riflettere la funzionalità desiderata dell'oggetto - ciò che l'oggetto è. Fare clic sul pulsante "Altro nodo" e aggiungere un nodo Area2D <class_Area2D>` alla scena.

../../_images/add_node.png

Godot mostrerà un'icona di avvertimento accanto al nodo nell'albero della scena. Per ora lo puoi ignorare. Ce ne occuperemo successivamente.

Con il nodo Area2D possiamo rilevare gli oggetti che si sovrappongono o scontrano con il giocatore. Rinomina il nodo in Player facendo doppio click sopra di esso. Ora che abbiamo impostato la scena principale, possiamo aggiungere ulteriori nodi al giocatore per aggiungere altre funzionalità.

Prima di aggiungere figli al nodo Player, vogliamo assicurarci di non muoverli o ridimensionarli accidentalmente cliccandoci sopra. Seleziona il nodo e fai click sull'icona a destra del lucchetto; la descrizione del comando dice "Accerta che i figli dell'oggetto non siano selezionabili."

../../_images/lock_children.png

Salva la scena. Clicca su Scena -> Salva, oppure premi Ctrl + S su Windows/Linux o Cmd + S su macOS.

Nota

Per questo progetto, seguiremo le convenzioni di denominazione di Godot.

  • GDScript: Le classi (nodi) usano PascalCase, le variabili e le funzioni snake_case e le costanti usano ALL_CAPS (Vedi GDScript style guide).

  • C#: Classes, export variables and methods use PascalCase, private fields use _camelCase, local variables and parameters use camelCase (See C# style guide). Be careful to type the method names precisely when connecting signals.

Animazione Sprite

Click on the Player node and add an AnimatedSprite node as a child. The AnimatedSprite will handle the appearance and animations for our player. Notice that there is a warning symbol next to the node. An AnimatedSprite requires a SpriteFrames resource, which is a list of the animations it can display. To create one, find the Frames property in the Inspector and click "[empty]" -> "New SpriteFrames". Click again to open the "SpriteFrames" panel:

../../_images/spriteframes_panel.png

Sulla sinistra c'è un elenco di animazioni. Fai clic su quella chiamata "default" e rinominala in "walk". Quindi fare clic sul pulsante "Nuova animazione" per creare una seconda animazione denominata "up". Trova le immagini del giocatore nella scheda "FileSystem", si trovano nella cartella `` art`` che hai decompresso in precedenza. Trascina le due immagini per ogni animazione, chiamate `` playerGrey_up [1/2] `` e `` playerGrey_walk [1/2] ``, nella parte "Fotogrammi animazione" del pannello per l'animazione corrispondente:

../../_images/spriteframes_panel2.png

The player images are a bit too large for the game window, so we need to scale them down. Click on the AnimatedSprite node and set the Scale property to (0.5, 0.5). You can find it in the Inspector under the Node2D heading.

../../_images/player_scale.png

Finally, add a CollisionShape2D as a child of Player. This will determine the player's "hitbox", or the bounds of its collision area. For this character, a CapsuleShape2D node gives the best fit, so next to "Shape" in the Inspector, click "[empty]"" -> "New CapsuleShape2D". Using the two size handles, resize the shape to cover the sprite:

../../_images/player_coll_shape1.png

Quando hai finito, la tua scena Player dovrebbe essere simile a questa:

../../_images/player_scene_nodes.png

Assicurati di salvare di nuovo la scena dopo queste modifiche.

In the next part, we'll add a script to the player node to move and animate it. Then, we'll set up collision detection to know when the player got hit by something.