ter conhecimento em lógica de programação é uma das habilidades mais poderosas para dar vida a um jogo e criar experiências imersivas que cativam os jogadores e na godó Engine isso não é diferente entra GD script que é a linguagem de script Nativa do godó Projetada para ser intuitiva e fácil de aprender no último vídeo dessa série Nós aprendemos a mexer na interface da godó que é muito importante mas não aprendemos muito Como de fato programar apenas como criar um script pelo editor por isso no vídeo de hoje vamos aprender a usar JD script desde o
Basto da programação necessário para não só dar vida ao nossos jogos como também usar essa linguagem de programação efetivamente dentro do editor tudo isso em 10 minutos eu espero desde já recomendo que vocês tenham assistido esse último vídeo que vai aparecer na tela já que ele vai ajudar vocês e muito a entender os termos que iremos usar Neste vídeo Principalmente quando falarmos do editor beleza sem mais enrolação vamos lá existem várias formas de criar um script na godó podemos aqui no File System especificar a criação de um script podemos selecionar um node na Cine Tree
e clicar nesse botãozinho justamente para criar um script associado ao node selecionado ou até mesmo no inspetor do node na parte inferior tem esse botão para associar um script a esse node ou senão criar um novo enfim são várias opções mas todas elas levam para essa janela onde podemos configurar o nosso script a ser criado por agora muitas opções não faz sentido explicar nesse momento vamos apenas nos preocupar em colocar o tipo do script como objeto vazio e dar um nome ao mesmo neste Campo daqui e por fim clicar nesse botão criar para efetivamente criar
o script agora estamos aqui na aba de edição que podemos ver que é essa aba selecionada a partir desse ícone na seção superior do editor aqui nós podemos ver tanto os scripts que estão abertos como também editar o script atualmente aberto a partir dessa janela e tudo isso funciona como um ambiente Integrado de desenvolvimento que seria um bloco de notas mais avançado mas com capacidade de agilizar o processo de programação antes de começar a programar eu primeiro preciso explicar para vocês um pouco das ideias mais básicas sobre as linguagens de programação da mesma forma que
eu uso a língua portuguesa para comunicar com vocês ideias pensamentos ou até mesmo tutoriais como este vídeo As linguagens de programação possuem o mesmo princípio onde a partir do vocabulário dela eu forneço uma sequência de instruções específicas dentro do meu jogo para ser rodado pela máquina dizendo para ela como que a lógica do meu jogo irá ser operada coisas como a movimentação do jogador a ordem na qual as coisas aparecem na tela e mais esse vocabulário das linguagem de programação Nós também chamamos de palavras reservadas que usamos junto a sintaxe e a semântica da linguagem
para construir as nossas instruções com isso entendido Vamos focar em fazer as nossas primeiras instruções funcionarem e nós acionamos elas dentro de um espaço que chamamos de funções primeiro nós começamos definindo o que chamamos de o cabeçalho da função iniciando com a palavra reservada funk seguido do nome da nossa função separado por espaço seguido de parênteses e dois pontos e pronto temos a nossa função vocês podem pensar nas funções da programação como se fosse uma função matemática onde nós temos um nome temos parâmetros e uma expressão onde iremos inserir os nossos parâmetros para achar um
valor e bem a expressão aqui seria nosas instruções que colocamos aqui na casa da godó na linha de baixo depois os dois pontos separados pelo espaço de um Tab e os parâmetros nós colocamos entre os parênteses dessa forma separando cada um com vírgula a primeira instrução que vamos aprender é invocar outras funções como essa que se chama print para colocar texto nessa parte aqui do editor que chamamos de saída nós colocamos o nome print seguido de parênteses e o que eui imprimir será passado para dentro desses parênteses que no caso vai ser dois parâmetros primeiro
o texto Olá entre aspas vírgula o nosso parâmetro x detalhe para o fato que na godó você não só consegue criar funções mas também usar funções prontas e você pode verificar o que que uma função faz segurando a tecla control e depois clicando no nome da função e aí você vai ser levado para a documentação dentro do próprio editor você também consegue documentar o seu próprio código usando caractere de jogo da velha e qualquer coisa que você escreverá aqui na frente será apenas documentação do código e a god Engine irá simplesmente ignorar esses caracteres perfeito
mas agora como é que a godó vai executar essa minha função Se eu tentar agora rodar essa cena nada vai acontecer e isso é normal pelo fato que por termos criado a nossa função não significa que a godó irá necessariamente rodar ela e Para isso precisamos invocar essa função igual fizemos com esse print mas para fazer isso eu preciso explicar para vocês um pouco como que a godó transforma as cenas do nosso editor em um jogo como vimos no vídeo anterior o nosso jogo é feito usando nodes e os nossos nodes são encaixados em cenas
e organizados igual uma árvore que é uma estrutura que chamamos de C TRE quando se o jogo rodar pela primeira vez ele irá começar com um único node que é só a janela dele então a godó irá carregar os nodes da cena que foi especificada para carregar imagina que cada node é colocado na cena como se fosse uma lâmpada noturna que quando encaixa na tomada a lâmpada recebe um sinal elétrico pra luz acender e o node obviamente ele não acende Mas em vez de acender ele irá invocar uma função chamada reg que podemos declarar o
cessário dela em código utilizando a mesma sintaxe que usamos anteriormente e pronto com isso eu tenho meu ponto de partida para rodar o meu código lembrando novamente que assim como o print podemos ver a documentação do R usando control agora aqui na função Ready podemos invocar a nossa função há passando o parâmetro entre os parênteses se rodarmos o nosso jogo perfeito Olha a nossa mensagem aparecendo na parte da saída mas ok o nosso jogo não é feito apenas para imprimir coisas vamos ver o que mais podemos fazer dentro de um script na programação que já
vou adiantando que são cinco coisas a primeira sendo as variáveis Você consegue imaginar as variáveis sendo como contêiners para armazenar informações de longo e curto prazo no nosso jogo então por exemplo eu posso vir aqui na minha função Ready e criar uma variável começando com a palavra reservada var seguido do nome da nossa variável E se eu quiser atribuir já um valor para ela eu posso colocar aqui igual e o meu valor se a atribuição precisa vir depois podemos colocá-la aqui embaixo o nome da minha variável e colocar novamente a mesma sintaxe e agora com
a função print eu posso ver a minha variável em Ação trocando o meu texto pela minha variável E agora se eu rodar o meu jogo eu vou ver ela imprimir Olá c e nós podemos ter mais do que apenas números inteiros as variáveis podem ter diferentes tipos como números reais caracteres texto vetores e muito mais quando não especificamos o tipo da variável Ela será num tipo dinâmico que chamamos de Variant mas podemos especificar o tipo dessa forma ou usando esse operador que chamamos de wers mas aqui a nossa variável ela terá um problema Ela só
irá existir dentro da minha função então quando temos variáveis muito importantes para o funcionamento do meu jogo como todo nós colocamos fora das funções nesse espaço aqui em cima e aqui ela é mais do que apenas uma variável ela Assim como as funções nós chamamos de uma propriedade do meu componente e toda a variável na godó assim como o nosso script que estamos fazendo pode conter propriedades Como por exemplo o vetor que pode armazenar informações de coordenadas dentro de um espaço 2D ou 3D Se eu colocar aqui um ponto eu posso acessar as propriedades do
mesmo como x e o y vamos ver como podemos usar o que aprendemos na prática e assim como R eu irei sobrescrever outra função que os nodes da godó tem por padrão que se chama process que é responsável em calcular coisas que interfira com o estado do jogo como movimentação do jogador aqui eu posso acessar uma propriedade chamada posição Global do meu personagem lembre-se O contro é seu amigo e você vai poder ver essa variável na documentação Assim como as funções que nesse caso a Global position seria um vetor indicando a posição do meu node
na cena Então por exemplo eu posso acessar o x da minha posição e somar ele com um valor qualquer e pronto nosso personagem está andando na tela Nós também podemos fazer essa sintaxe de forma mais simplificada assim ou também Quem sabe em vez de soma usar qualquer um dos outros possíveis operadores aritméticos Mas e se quisermos que o nosso personagem ande em diferentes direções para isso precisamos criar um código com múltiplos fluxos de execução Ou seja que roda tem diferentes instruções com base em condições específicas e uma forma de fazer isso é usando a cadeia
condicional if else if e else nós começamos uma cadeia condicional com if e a condição que iremos verificar e dois pontos e aqui no espaço de baixo separado por um Tab nós colocamos as instruções que serão executadas caso A nossa condição seja verdadeira damos continuidade a uma cadeia utilizando no else if ou elif e encerramos opcionalmente com else essa condição é nada mais do que um valor boleano que pode ser dois igual Nossa lâmpada verdadeiro ou falso e podemos criar um valor boleano a partir de uma variável ou senão uma expressão matemática que resulta em
um valor boleano como por exemplo uma comparação entre dois números usando operadores relacionais Vamos então agora implementar a movimentação do jogador nós podemos fazer isso usando as estruturas condicionais e o input que é um componente da godó para verificar se determinada tecla foi pressionada onde associamos uma tecla com o nome e pronto agora temos um personagem com movimentação controlada Se quisermos mudar como o funcionamento dos botões funciona nós podemos vir aqui na configuração do projeto e em mapeamento de entrada logo podendo mudar os controles do meu jogo não só os embutidos como esses do ui
mas também adicionar comandos novos digitando aqui o nome da minha ação e depois ccar nesse sinal de mais para então associar um botão a essa ação para associar você pode tanto buscar nessa barra de pesquisa ou simplesmente clicar no seu dispositivo que no meu caso um teclado mas para você pode ser um controle o botão que você quer associar aquela ação vamos voltar aqui então ao código e implementar a nossa ação dessa vez eu vou usar a função input que como o nome sugere em vez de ser chamada a cada frame para processar o estado
do jogo ela irá ser chamada Apenas quando houver entrada do usuário ou seja perfeito pro meu caso eu uso o parâmetro da minha função event que seria o mesmo dessa input da função process chamo a função para saber se a minha ação foi realmente pressionada colocando o nome da ação e dentro do IF coloco a linha de código para ser executada caso a minha ação aconteça pronto implementamos uma nova ação com sucesso a segunda estrutura para podermos controlar o fluxo do código são as chamadas estruturas de repetição que como o nome sugere permite rodar um
conjunto de instruções de forma repetida e controlada a partir de uma condição temos o for que permite escolher um intervalo numérico por exemplo para podemos fazer repetição ou usar um Wi que irá rodar a repetição até uma con x for falsa por fim vamos falar como que a partir de um script interagimos com o noes de uma cena Então nesse exemplo aqui eu tenho esse Label que tá dentro de um Canvas layer para exibir texto na tela então novamente eu vou criar um outro script porém apenas para esse meu novo node e dentro do reg
dele por exemplo nós podemos usar essa função get node para pegar o node da C Tree a partir de seu endereço que chamamos de o node pef e para pegar o node pef é simples basta arrastar o node da C Tree para dentro doos parênteses e retirar esse dollar sign e pronto temos agora acesso a esse node e eu inclusive posso até acessar as variáveis dele e suas funções como nesse exemplo eu tô pegando um node de texto Então eu vou alterar o texto dele para o lag guará e veja só conseguimos fazer isso com
sucesso e com isso terminamos a nossa primeira aula de programação realmente para uma primeira aula tem bastante coisa que vimos aqui então Não se preocupem se realmente é muito conteúdo condensado porque realmente é mas eu espero que com esse vídeo vocês possam não só ter dado o primeiro passo de vocês na programação como também ter entendido o porque cada uma das coisas que fizemos aqui faz sentido porque essa é a mensagem que eu quero passar para vocês que a programação não é um bicho de sete cabeças tudo tem um motivo e uma explicação por trás
e vocês não entenderam tudo bem ao longo do tempo vocês vão fixando esse conteúdo e vão criando um senso de lógica de programação até porque como vocês devem ter percebido as instruções que passamos na programação são atômicas então acaba que sempre tem jeitos diferentes de fazer a mesma coisa e talvez alguns jeitos são até melhores do que outros mas vamos continuar essa discussão em um outro vídeo enfim enfim continue acompanhando queremos fazer a segunda parte desse vídeo mas até lá não esqueça de deixar o like e inscrição no canal pois sempre me ajuda muito a
continuar esses vídeos muito obrigado pela atenção de todos um forte abraço Valeu galera falou