Documentação do Godot Engine 4.0 - Tutorial passo a passo - Criando um exemplo

Este artigo é o resultado da tradução em inglês do Google Tradutor, e o DrGraph adicionou algumas correções com base nisso. Página original em inglês:

Criando instâncias — Documentação Godot Engine (estável) em inglês

Crie uma instância¶

Nas seções anteriores, vimos que uma cena é uma coleção de nós organizados em uma estrutura de árvore, com um único nó como raiz. Você pode dividir seu projeto em qualquer número de cenas. Esse recurso ajuda você a dividir e organizar os diferentes componentes do seu jogo.

Você pode criar quantas cenas quiser e salvá-las como  .tscnarquivos com a extensão "Text Scene". tabel.tscnO arquivo da lição anterior é um exemplo. Referimo-nos a esses arquivos como "cenas empacotadas" porque contêm informações sobre o conteúdo da cena.

Aqui está um exemplo de uma bola. Ele consiste em um nó raiz RigidBody2D chamado Ball , um nó Sprite2D e um  CollisionShape2D que permite que a bola caia e ricocheteie na parede.

Depois de salvar uma cena, ela funciona como um projeto: você pode duplicá-la várias vezes em outras cenas. Copiar um objeto de um modelo como este é chamado de instanciação .

Como mencionamos na seção anterior, as cenas instanciadas se comportam como um nó: o editor oculta seu conteúdo por padrão. Quando você instancia uma Ball, você vê apenas o nó Ball. Observe também como cada duplicata tem um nome exclusivo.

Cada instância da cena Ball começa com a mesma estrutura e propriedades ball.tscn. No entanto, você pode modificar instâncias individuais individualmente, como alterar como elas saltam, seu peso ou qualquer propriedade exposta pela cena de origem.

Na prática¶

Vamos usar a instanciação na prática e ver como funciona no Godot. Convidamos você a baixar o projeto de exemplo que preparamos para você:  instancing_starter.zip .

Extraia o arquivo em seu computador. Para importá-lo, você precisa do gerente de projeto. Abra o Godot para acessar o Gerenciador de Projetos, ou se já tiver o Godot aberto, clique em Projeto -> Sair para a lista de projetos (Ctrl + Shift + Q, Ctrl + Option + Cmd + B no macOS)

No Gerenciador de Projetos, clique no botão Importar para importar o projeto.

No pop-up exibido, clique no botão Procurar e navegue até a pasta extraída.

Clique duas vezes project.godotno arquivo para abri-lo.

Por fim, clique no botão Importar e Editar.

O projeto contém duas cenas compactadas: main.tscn, que contém as paredes com as quais as bolas colidem, e ball.tscn. A cena principal main.tscndeve abrir automaticamente.

Vamos adicionar uma bola como filha do nó principal. No encaixe da cena, selecione o nó principal. Em seguida, clique no ícone do link na parte superior do encaixe da cena. Este botão permite adicionar uma instância de cena como filho do nó atualmente selecionado.

Clique duas vezes na cena da esfera para instanciá-la.

A bola aparece no canto superior esquerdo da viewport.

Clique nele e arraste-o para o centro da exibição.

Pressione F5 (Cmd + B no macOS) para jogar. Você deve vê-lo cair.

Agora, queremos criar mais instâncias do nó Ball. Com a bola ainda selecionada, pressione (Ctrl-DCmd-D no macOS) para invocar o comando Duplicar. Clique e arraste para mover a nova bola para um local diferente.

Você pode repetir esse processo até que haja mais de um na cena.

Jogue o jogo novamente. Agora você deve ver cada bola cair independentemente. É isso que as instâncias fazem. Cada um é uma versão independente da cena modelo.

Editando Cenas e Instâncias¶

Há muitos mais exemplos. Com este recurso você pode:

  1. Use o Inspetor para alterar as propriedades de uma bola sem afetar as outras bolas.

  2. ball.tscnAltere as propriedades padrão de cada Bola abrindo a cena e alterando o nó Bola ali. Após salvar, todas as instâncias de Ball no projeto terão seus valores atualizados.

Nota: Alterar um atributo de uma instância sempre substitui o valor na cena empacotada correspondente.

Vamos tentar isso. Abra ball.tscne selecione o nó Bola. No Inspetor à direita, clique na propriedade PhysicsMaterial para expandi-la.

2Clique no campo de número, digite 2e pressione para definir sua propriedade Bounce como Enter.

Pressione F5 para jogar e observe que todas as bolas agora saltam muito mais. Como a cena da bola é o modelo para todas as instâncias, modificá-la e salvá-la fará com que todas as instâncias sejam atualizadas de acordo.

Agora vamos ajustar uma única instância. Clique na guia apropriada acima da viewport para retornar à cena principal.

Selecione um nó Ball instanciado e defina seu valor Gravity Scale para 10.

Um botão cinza Reverter aparecerá ao lado da propriedade ajustada.

Este ícone indica que você está substituindo um valor na cena de empacotamento de origem. Mesmo que você modifique a propriedade na cena original, a substituição do valor permanece na instância. Clicar no ícone de restauração restaurará as propriedades para seus valores da cena salva.

Execute novamente o jogo e observe que a bola agora está caindo muito mais rápido que as outras.

NOTA: Se você alterar o valor de uma instância PhysicsMaterial, isso afetará todas as outras instâncias. Isso ocorre porque PhysicsMaterialé um recurso e os recursos são compartilhados entre as instâncias. Para tornar um recurso exclusivo para uma instância, clique com o botão direito do mouse no inspetor e clique em Tornar exclusivo no menu de contexto.

Os recursos são outra parte importante de um jogo Godot, que abordaremos em uma lição posterior.

Instância de cena como linguagem de design¶

Instâncias e cenas em Godot fornecem uma excelente linguagem de design que diferencia esse mecanismo. Nós projetamos Godot em torno deste conceito desde o início.

Recomendamos abandonar os padrões de código de arquitetura, como Model-View-Controller (MVC) ou Diagramas de Entidade-Relacionamento ao fazer jogos com Godot. Em vez disso, você pode começar imaginando os elementos que os jogadores verão em seu jogo e criar seu código em torno deles.

Por exemplo, você pode decompor um atirador como este:

Você pode criar esse diagrama para quase qualquer tipo de jogo. Do ponto de vista do jogador, cada retângulo representa uma entidade visível no jogo. As setas indicam qual cena possui qual.

Depois de ter um diagrama, recomendamos criar uma cena para cada elemento listado nele para desenvolver seu jogo. Você construirá sua árvore de cena no código ou diretamente no editor usando instanciamento.

Os programadores tendem a gastar muito tempo projetando arquiteturas abstratas e tentando encaixar componentes nelas. O design baseado em cenários torna o desenvolvimento mais rápido e direto, permitindo que você se concentre na própria lógica do jogo. Como a maioria dos componentes do jogo é mapeada diretamente para as cenas, usar um design baseado na instância de cena significa que você precisa de muito pouco código de arquitetura adicional.

Aqui está um gráfico de cena de exemplo para um jogo de mundo aberto com muitos ativos e elementos aninhados:

Imagine que começamos criando uma sala. Poderíamos fazer várias cenas de sala diferentes com arranjos de móveis exclusivos. Mais tarde, podemos criar uma cena de casa que usa várias instâncias de sala internamente. Vamos criar um castelo com muitas casas instanciadas e um grande terreno onde colocaremos o castelo. Cada uma delas é uma cena que instancia uma ou mais subcenas.

Posteriormente, podemos criar cenas representando guardas e adicioná-los ao castelo. Eles serão adicionados indiretamente ao mundo geral do jogo.

Com Godot é fácil iterar seu jogo assim porque tudo que você precisa fazer é criar e instanciar mais cenas. Nós projetamos o editor para ser usado por programadores, designers e artistas. Um processo típico de desenvolvimento de equipe pode envolver artistas 2D ou 3D, designers de níveis, designers de jogos e animadores, todos usando o editor Godot.

Resumo¶ _

A instanciação, o processo de geração de objetos a partir de Blueprints, tem muitos usos convenientes. Com cenários, dá-lhe:

  • A capacidade de particionar jogos em componentes reutilizáveis.

  • Ferramentas para construir e empacotar sistemas complexos.

  • Uma linguagem para pensar a estrutura de projetos de jogos de forma natural.

Acho que você gosta

Origin blog.csdn.net/drgraph/article/details/130792671
Recomendado
Clasificación