Nós e cenas

Na Visão geral dos principais conceitos do Godot, nós vimos que um jogo Godot é uma árvore de cenas e que cada cena é uma árvore de nós. Nessa aula, nós vamos explicar um pouco mais sobre eles. Você também vai criar sua primeira cena.

Nós

Nós são um conceito fundamental do seu jogo. Eles são como ingredientes numa receita. Tem um monte de nós que podem mostrar uma imagem, tocar um som, representar uma câmera, e muito mais.

../../_images/nodes_and_scenes_nodes.png

Todos os nós têm os seguintes atributos:

  • Um nome.

  • Propriedades editáveis.

  • Eles recebem retornos de chamada para atualizar cada quadro.

  • Podem ser estendidos com novas propriedades e funções.

  • Podem ser adicionados a outro nó como filho.

O último atributo é um ponto-chave. Juntos, nós formam uma árvore, que é um jeito poderoso de organizar seus projetos. Já que nós diferentes tem diferentes funcionalidades, combinando eles conseguimos comportamentos mais complexos. Como vimos anteriormente, você pode construir um personagem jogável que a câmera segue usando um KinematicBody chamado "Character", um nó de sprite, um nó de câmera, e um nó de forma de colisão.

../../_images/nodes_and_scenes_character_nodes.png

Cenas

Quando você organiza nós numa árvore, como nosso personagem, nós chamamos isso de construir uma cena. Uma vez salvo, cenas funcionam como nós no editor, como pode adicioná-las como filho de um nó existente. Nesse caso, a instância da cena aparece como um único nó com os nós internos escondidos.

Cenas permitem que você estruture o código do seu jogo do jeito que quiser. Você pode compor nós para criar nós personalizados e complexos, como um personagem de um jogo que corre e pula, uma barra de vida, um baú que você interage, e mais.

../../_images/nodes_and_scenes_3d_scene_example.png

O editor Godot é essencialmente um editor de cena. Possui muitas ferramentas para edição de cenas 2D e 3D, bem como interfaces de usuário. Um projeto Godot pode conter quantas dessas cenas você precisar. A engine requer apenas um nó como a cena principal do seu aplicativo. Esta é a cena que Godot carregará primeiro quando você ou um jogador executar o jogo.

Além de agirem como nós, cenas tem os seguintes atributos:

  1. Elas sempre tem um nó raiz, como o "Character" no nosso exemplo.

  2. Você pode salvá-las no seu disco e carregar elas depois.

  3. Você pode criar quantas instâncias de uma cena quiser. Você pode ter cinco ou dez personagens em seu jogo, criados a partir de sua cena "Character".

Criando sua primeira Cena

Vamos criar nossa primeira cena com um único nó. Para fazer isso, você precisará criar um novo projeto primeiro. Depois de abrir o projeto, você deve ver um editor vazio.

../../_images/nodes_and_scenes_01_empty_editor.png

Em uma cena vazia, o painel de Cena à esquerda mostra várias opções para adicionar um nó raiz rapidamente. "Cena 2D" adiciona um nó Node2D, " Cena 3D" adiciona um nó Node3D e "Interface de Usuário" adiciona um nó Control. Essas predefinições estão aqui por conveniência; elas não são obrigatórias. "Outro nó" permite selecionar qualquer nó para ser o nó raiz. Em uma cena vazia, "Outro nó" é equivalente a pressionar o botão "Adicionar nó filho" no canto superior esquerdo do painel de Cena, que geralmente adiciona um novo nó como filho do nó atualmente selecionado.

Vamos adicionar um único nó de Label na nossa cena. Sua função é desenhar texto na tela.

Clique no botão "Adicionar Nó Filho" ou "Outro Nó" para criar um nó raiz.

../../_images/nodes_and_scenes_02_scene_dock.png

A caixa de diálogo Criar Novo Nó é aberta, mostrando a longa lista de nós disponíveis.

../../_images/nodes_and_scenes_03_create_node_window.png

Selecione o nó Label. Você pode digitar seu nome para filtrar a lista.

../../_images/nodes_and_scenes_04_create_label_window.png

Clique no nó Label para selecioná-lo e clique no botão Criar na parte inferior da janela.

../../_images/nodes_and_scenes_05_editor_with_label.png

Muito coisa acontece quando você adiciona o primeiro nó da cena. A cena muda pra área de trabalho 2D porque Label é um nó do tipo 2D. A Label aparece, selecionada, no canto superior esquerdo da tela (viewport). O nó aparece no Painel de Cenas à esquerda, e as propriedades do nó aparecem no Painel Inspetor à direita.

Alterando as propriedades de um nó

O próximo passo é mudar a propriedade "Text" do Label. Vamos alterá-la para "Olá, mundo!".

Vá para o painel Inspetor à direita da viewport. Clique dentro do campo abaixo da propriedade de Texto e digite "Olá Mundo".

../../_images/nodes_and_scenes_06_label_text.png

Você vai ver o texto aparecer na viewport enquanto você digita.

Você pode mover seu nó Label na viewport selecionando a ferramenta de mover na barra de ferramentas (toolbar).

../../_images/nodes_and_scenes_07_move_tool.png

Com a Label selecionada, clique e arraste para qualquer lugar na viewport para movê-la para o centro da janela delimitada pelo retângulo.

../../_images/nodes_and_scenes_08_hello_world_text.png

Executando a cena

Está tudo pronto para rodar a cena! Clique no botão "Rodar Cena Atual" no canto direito superior da tela ou aperte a tecla F6 (Cmd + R no macOS).

../../_images/nodes_and_scenes_09_play_scene_button.png

Um popup vai te convidar a salvar a cena, que é necessário para rodá-la.

../../_images/nodes_and_scenes_10_save_scene_popup.png

Clique no Botão de Sim, e no gerenciador de arquivos que aparecer, pressione o botão de Salvar para salvá-la como "Label.tscn".

../../_images/nodes_and_scenes_11_save_scene_as.png

Nota

O diálogo de Salvar Cena, como outros diálogos de arquivos no editor, só deixam você salvar arquivos dentro do projeto. O res:// no topo da janela representa o diretório raiz do projeto e significa "Caminho dos Recursos". Para mais informações sobre o caminho dos arquivos no Godot, veja Sistema de arquivos.

A aplicação deve abrir uma nova janela e mostrar o texto "Olá Mundo".

../../_images/nodes_and_scenes_12_final_result.png

Feche a janela ou pressione :kbd:`F8`para fechar a cena que está rodando.

Nota

Se isso não funcionar imediatamente e você tem um display hiDPI em pelo menos um dos seus monitores, vá para Projeto -> Configurações do Projeto -> Exibição -> Janela e então habilite Allow hiDPI under DPI.

Definindo a cena principal

Para rodar nossa cena de teste, nós usamos o botão Rodar Cena Atual. Outro botão próximo à ele permite que você defina e execute a cena principal do projeto. Você pode apertar:kbd:F5 (Cmd + B no macOS) para fazer isso.

../../_images/nodes_and_scenes_13_play_button.png

Uma janela popup aparecerá, te convidando para selecionar a cena principal.

../../_images/nodes_and_scenes_14_main_scene_popup.png

Clique o botão Selecionar, e no diálogo de arquivo que aparece, clique duas vezes em Label.tscn.

../../_images/nodes_and_scenes_15_select_main_scene.png

A demo deve rodar novamente. No futuro, toda vez que rodar seu projeto, Godot vai usar essa cena como um ponto de partida.

Nota

O editor salva o caminho para a cena principal no arquivo project.godot na pasta do seu projeto. Enquanto você pode editar esse arquivo de texto diretamente para mudar as configurações do project, você também pode usar a janela "Projeto->Configurações do Projeto" para fazer isso.

Na próxima parte, discutiremos outro conceito-chave nos jogos e no Godot: a criação de instâncias de uma cena.