Criando a cena do jogador¶
Com as configurações do projeto feitas, podemos começar a trabalhar no personagem controlado pelo jogador.
A primeira cena que faremos define o objeto "Jogador". Um dos benefícios de criarmos uma cena separada para o Jogador é que podemos testá-la separadamente, mesmo antes de criarmos outras partes do jogo.
Estrutura de nós¶
Para iniciarmos, precisamos escolher o nó raiz para o objeto jogador. Como regra geral, o nó raiz da cena deve refletir a funcionalidade desejado do objeto: o que o objeto é. Clique no botão "Outros Nós" e adicione um nó Area2D à cena.

Godot vai mostrar um ícone de aviso próximo do nó na árvore de cenas. Você pode ignorá-lo por enquanto; vamos falar disso mais tarde.
Com Area2D
, nós podemos detectar objetos que se sobreponham ou vão de encontro ao jogador. Mude seu nome para Jogador
com um clique duplo no nome do nó. Já que nós configuramos o nó raiz, nós agora podemos inserir nós adicionais para adicionar mais funcionalidades.
Antes de adicionar filhos ao nó Jogador
, queremos ter certeza de que não os moveremos nem os redimensionaremos acidentalmente ao clicar neles. Selecione o nó e clique no ícone à direita do cadeado; seu texto de dica diz "Garante que os filhos do objeto não sejam selecionáveis."

Salve a cena. Clique em Cena -> Salvar ou pressione Ctrl + S no Windows/Linux ou Cmd + S no macOS.
Nota
Para esse projeto, vamos seguir as convenções de nomeação do Godot.
GDScript: Classes (nós) usam o estilo
PascalCase
(IniciaisMaiúsculas), variáveis e funções usamsnake_case
(minúsculas_separadas_por_sublinha) e constantes usamALL_CAPS
(TODAS_MAIÚSCULAS) (Veja mais em Guia de Estilo GDScript).C#: Classes, variáveis de exportação e métodos usam PascalCase, campos privados usam _camelCase, variáveis locais e parâmetros usam camelCase (Veja :ref: doc_c_sharp_styleguide). Tenha o cuidado de digitar os nomes dos métodos com precisão ao conectar os sinais.
Animação por Sprites¶
Clique no nó Jogador
e adicione um nó AnimatedSprite (sprite animado) como filho. O AnimatedSprite
irá lidar com a aparência e as animações do nosso jogador. Note que existe um símbolo de alerta ao lado do nó. Um AnimatedSprite
exige um recurso do tipo SpriteFrames (quadros de sprite), que é uma lista das animações que ele pode mostrar. Para criar um, encontre a propriedade Frames
no Inspetor e clique em "[empty]" -> "Novo SpriteFrames". Clique novamente para abrir o painel de "SpriteFrames":

À esquerda está uma lista de animações. Clique em "default" e a renomeie para "caminhar". Então, clique no botão "Nova Animação" para criar uma segunda animação chamada "cima". Encontre as imagens do jogador na aba "Sistema de Arquivos" - eles estão na pasta art
que você descompactou mais cedo. Arraste as duas imagens de cada animação, chamadas playerGrey_up[1/2]
e playerGrey_walk[1/2]
para dentro da região "Frames da Animação" do painel para a animação correspondente:

As imagens do jogador são um tanto grandes demais para a janela de jogo, então precisamos reduzir sua escala. Clique no nó AnimatedSprite
e configure a propriedade Scale
(escala) para (0.5, 0.5)
. Você pode encontrá-la no Inspetor na seção Node2D
.

Finalmente, adicione um CollisionShape2D (forma de colisão 2D) como filho de Jogador
. Isso determina a "hitbox" (caixa de acerto) do jogador, ou seja, os limites da sua área de colisão. Para este personagem, um nó CapsuleShape2D
(forma cápsula 2D) é o que melhor se encaixa. Então, ao lado de "Shape" (forma) no Inspetor, clique em "[vazio]" -> "Novo CapsuleShape2D". Utilizando os dois manipuladores de tamanho, redimensione a forma para cobrir o sprite:

Quando tiver finalizado, sua cena Jogador
deveria se parecer assim:

Certifique-se de salvar a cena novamente após as alterações.
Na próxima parte, adicionaremos um roteiro ao nó jogador para movê-lo e animá-lo. Depois, configuraremos a detecção de colisão para saber quando o jogador é atingido por alguma coisa.