Roblox e Lua para iniciantes: comece a criar jogos com o Roblox Studio | Kaupenjoe (Nico) | Skillshare
Menu
Pesquisar

Velocidade de reprodução


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Roblox e Lua para iniciantes: comece a criar jogos com o Roblox Studio

teacher avatar Kaupenjoe (Nico), CS Student, Nerd and Educator

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Introdução ao meu curso Roblox

      0:45

    • 2.

      Visão geral do curso

      1:12

    • 3.

      (Lua) Instalando o Roblox Studio

      3:10

    • 4.

      (Lua) Tipos variáveis em Lua

      6:31

    • 5.

      (Lua) Saída e comentários

      7:37

    • 6.

      (Lua) Operações de matemática

      10:54

    • 7.

      (Lua) Operações relacionais e lógicas

      11:15

    • 8.

      (Lua) Se e outras declarações

      9:50

    • 9.

      (Lua) Variáveis locais

      4:07

    • 10.

      (Lua) Operações de corda

      7:47

    • 11.

      (Lua) Loops em Lua

      8:46

    • 12.

      (Lua) Funções em Lua

      4:50

    • 13.

      (Lua) Mesas em Lua

      10:50

    • 14.

      (Lua) A Biblioteca de matemática em Lua

      8:11

    • 15.

      (Roblox) Roblox Studio explicado

      6:42

    • 16.

      (Roblox) Referência a uma parte

      7:00

    • 17.

      (Roblox) Tipos de scripts

      7:25

    • 18.

      Visão geral de propriedades

      9:15

    • 19.

      (Roblox) Vector3 e posição

      7:31

    • 20.

      (Roblox) A função de espera

      2:54

    • 21.

      Movimento de parte básica

      3:18

    • 22.

      (Roblox) o evento tocado

      7:43

    • 23.

      (Roblox) Criando instâncias a partir de scripts

      6:29

    • 24.

      (Roblox) Clique no detector

      6:22

    • 25.

      (Roblox) aplicando forças

      9:08

    • 26.

      Restrições (Roblox)

      8:14

    • 27.

      Pontos de geração (Roblox)

      3:36

    • 28.

      Jogador (Roblox) vs personagem

      3:12

    • 29.

      (Roblox) poupando variáveis no jogador

      5:21

    • 30.

      Quadro de liderança com Leaderstats

      10:01

    • 31.

      (Roblox) peças colecionáveis

      15:27

    • 32.

      (Roblox) Adicionando trilhas para o jogador

      7:47

    • 33.

      (Roblox) três tipos de GUIs

      10:38

    • 34.

      Referências de API (Roblox)

      3:13

    • 35.

      (Roblox) Introdução e como esta seção é construída

      1:04

    • 36.

      (Roblox) Modelagem no Obby

      27:42

    • 37.

      (Roblox) Adicionando pontos de verificação no Obby

      5:47

    • 38.

      (Roblox) Adicionando um quadro de liderança com Leaderstats

      9:34

    • 39.

      (Roblox) Adicionando escadas desaparecidas no Obby

      11:33

    • 40.

      (Roblox) Adicionando peças móveis para o Obby

      11:41

    • 41.

      (Roblox) ideias adicionais para o Obby

      2:31

    • 42.

      (Roblox) Publicando seu jogo

      6:45

    • 43.

      (Roblox) Adicione fotos para sua GUI

      4:46

    • 44.

      (Roblox) armazenando dados de jogador com DataStoreService

      22:40

    • 45.

      (Roblox) vários lugares em um único jogo

      2:38

    • 46.

      Teleporte entre diferentes lugares

      4:42

    • 47.

      (Roblox) Para onde ir daqui

      1:27

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

2.261

Estudantes

1

Projetos

Sobre este curso

Você sempre quis criar seus próprios jogos, mas não sabia por onde começar? Este é exatamente o curso que você precisa! Atualizado para 2023

Neste curso novato Roblox e Lua você vai aprender o básico da linguagem Lua e o desenvolvimento de jogos com o Roblox Studio. Nenhuma experiência é necessária para aprender os entraves e saídas de fazer Jogos com o Roblox Studio.

Este curso é acessível para iniciantes completos. Mesmo que você nunca tenha programado em sua vida. O conhecimento básico do Roblox seria vantajoso, mas não é necessário.

Primeiro, você aprenderá Lua, então vamos passar por conceitos básicos do Desenvolvimento de jogos Roblox e como parte do curso, você até fará seu primeiro jogo!

Todo o código fonte será disponibilizado para que você possa acompanhar tudo o que faço nas palestras.

Se você tiver alguma dúvida ou sugestão, não hesite em contactar-me aqui. Fico feliz em ajudá-lo a aprender a fazer Jogos com o Roblox.

Conheça seu professor

Teacher Profile Image

Kaupenjoe (Nico)

CS Student, Nerd and Educator

Professor

I am Nico - also known as Kaupenjoe - I have a Master's Degree in Computer Science and teach Game Development through many different classes. Mid-2020, when I became a bit disillusioned with my job, I set my sights to something different. Multiple people have previously told me I was good at teaching things.

With some of my prior YouTube Video making knowledge I was able to make my first courses. The Minecraft Courses in particular made a huge impact on students and myself and allowed me to teach full-time with courses and other supplementary methods.

I hope you will also join me and allow me to help you learn Programming, Modding or Game Development. As a hobby, side-hustle or as a promising career, it is an amazing and fulfilling field and I'm so happy to have y... Visualizar o perfil completo

Level: Beginner

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução ao meu curso Roblox: Olá, eu sou Nico, também conhecido como Calvin draw, e bem-vindo à minha aula para iniciantes sobre scripts de obstáculos aqui no Skillshare. Nesta aula, você aprenderá seus primeiros passos na criação de jogos com o Roblox. Até mesmo iniciantes são bem-vindos aqui, pois há uma introdução de Lua incluída nesta aula. Depois de se familiarizar com Lua, veremos alguns conceitos básicos do Roblox como detectores de cliques, mudança de posição e o evento Touched. E, claro, muito mais equipado com esse conhecimento. Em seguida, você continuará fazendo seu projeto. Seu primeiro jogo ONE, que será um RB. Você pode usar tudo o que aprendeu e muito mais, deixe sua criatividade correr solta. No final das contas, haverá até alguns tópicos intermediários adicionais que também serão muito úteis para a criação de jogos de Romanov. Então, o que você está esperando para matricular nesta aula agora e começar os primeiros passos para criar jogos incríveis e Roblox. Te vejo na primeira aula. 2. Visão geral do curso: Tudo bem, bem-vindo aos núcleos Roblox para iniciantes. E esta será uma pequena visão geral do que você pode esperar neste curso. Em primeiro lugar, há uma introdução baixa incluída neste curso, que será muito, muito útil. Então, se você nunca criou nenhum script em Lua, eu recomendo fortemente que você passe por isso. Isso vai te poupar horas de dor de cabeça porque você não conseguirá criar jogos adequados e Roblox, se você não conhece pelo menos um pouco de loop após loop, falaremos sobre o Roblox Studio. Vamos falar sobre referenciar partes, os diferentes tipos de scripts. Vamos analisar alguns eventos, algumas funções ou adicionar movimento. Vamos até mesmo dar uma olhada em um pouco de força e restrições quando eles falarem sobre a diferença entre jogadores e personagens, vamos criar uma tabela de classificação com peças colecionáveis, adicionando uma trilha ao jogador e mais algumas coisas. Depois de terminarmos o básico, vamos criar um jogo personalizado que será um OB, e isso também será realmente incrível. Depois do RB, também tenho alguns tópicos intermediários que abordaremos, como publicar o jogo, adicionar imagens de GUI, armazenar os dados com um serviço de armazenamento de dados e mais algumas coisas que também podem ser muito úteis durante o curso. Para cada palestra, você receberá um arquivo RB Excel. Então, basicamente, você não obteve um resumo de cada palestra em termos dos scripts que estamos escrevendo Roblox tem algumas ferramentas muito poderosas para criar. Então, espero que você aproveite a jornada de criar seu primeiro jogo Roblox. Te vejo na próxima palestra. Então, sim. 3. (Lua) Instalando o Roblox Studio: Tudo bem, bem-vindo ao curso Roblox. E nesta primeira palestra, instalaremos o Roblox Studio em seu PC. Se você tiver o roadblocks Player instalado em teoria, Roblox Studio também deve ser instalado. No entanto, se esse não for o caso, você pode navegar até roblox.com barra create e clicar em começar a criar. Em seguida, ele verificará se você tem o Roblox Studio instalado. Em seguida, ele deve ter um pop-up se não for interrompido para que você possa iniciá-lo. E se você ainda não o instalou, basta baixar o estúdio. Este é apenas um arquivo EXE e, se você começar, instalará obstáculos no seu PC como qualquer outro programa. Se você não estiver logado, então você estará lendo com algo assim. Então você acabou de inserir seu nome de usuário sua senha e login, o login e então o Roblox Studio vai começar. Vamos apenas maximizar isso. E você pode ver que, no meu caso, eu já tenho alguns jogos recentes, certo? Eu já tenho alguns arquivos, arquivos locais e até arquivos online para você. Provavelmente está vazio em meus jogos. No entanto, você deve ter seu lugar. Sempre existe uma coisa e, com o novo , você pode começar um novo jogo. Vamos criar um novo jogo. Vamos escolher a placa base aqui. E depois de carregado, você pode ver que agora basicamente criou um novo local. Muitas coisas estão surgindo. Eu geralmente fecho a caixa de ferramentas e o editor de terreno aqui. E eu também faço a direita e um pouco maior. E eu também vou para Exibir e ligo a saída porque isso é realmente muito importante. Isso nos permite ver certos resultados e veremos isso em breve nas próximas palestras. Uma coisa que você notou é que tem esse arquivo com uma pequena nuvem aqui. E se eu pressionar Control S, você pode ver que ele quer salvar meu jogo, mas quer salvá-lo na Roblox Cloud por enquanto. O que eu sugiro é não fazer isso. O que eu recomendo que você faça é acessar Arquivo e salvar em arquivo ou salvar arquivo, pois isso realmente faz com que você tenha um arquivo RB Excel em seu disco rígido local que é, na verdade, um pouco melhor, especialmente se, por exemplo você tiver um problema, você pode simplesmente compartilhar seu arquivo OB Excel e então eu posso dar uma olhada nele, por exemplo, e você também terá acesso, como você provavelmente pode ver todos os arquivos OBX que são gerados por meio deste curso. Então, cada uma das palestras tem um arquivo exe RB onde todos os ativos, todos os scripts que estamos escrevendo, tudo está lá. E você pode basicamente ver cada instantâneo. No momento, embora eu tenha isso salvo no disco rígido local, ainda tenho a nuvem. Só queremos fechar este lugar e eles abrirão o arquivo a partir do arquivo. E então vamos abrir o arquivo que acabamos de criar. E você pode ver agora que este é absolutamente apenas nosso arquivo local. E se pressionássemos Control S, e ele realmente fosse salvo em nosso disco rígido novamente, muito legal. Nas próximas palestras, primeiro faremos uma pequena introdução para familiarizá-lo com a linguagem de programação Lua. Para isso, na verdade, precisamos apenas do Explorer e principalmente do serviço de script do servidor, bem como do botão play. Se pressionássemos o botão play, você pode ver que, de repente, nosso modo de jogo carrega e nós realmente entraríamos neste jogo. Agora eu posso me mover e pular. Então, isso está basicamente lá para você testar seu jogo. Mas, como eu disse, muitos desses botões não falarão sobre elas na introdução do banheiro. Em primeiro lugar, eu gostaria que você tivesse uma base muito, muito sólida, Senhor, isso é extremamente importante. E então vamos fazer coisas absolutamente incríveis. E isso vai ser para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo . Nos vemos na próxima palestra. Então, sim. 4. (Lua) Tipos variáveis em Lua: Tudo bem, então vamos continuar com a introdução de Lula aqui para o curso Roblox. E nesta palestra, falaremos sobre variáveis. Agora, as variáveis são basicamente armazenadas para determinados dados. Mas o que tudo isso significa? Certo, nós vimos um pouco das coisas ao redor aqui. E agora vamos entrar e realmente criar nosso primeiro roteiro e depois dar uma olhada nele. Vamos criá-los no serviço de script do servidor aqui. Então, vamos clicar no sinal de mais e você poderá ver que ele já é usado com frequência, diz o script. Normalmente, quando você está criando algo, você quer aqueles que não estão acinzentados, o material acinzentado é basicamente, uh, geralmente você não quer criar esses tipos de peças e coisas dentro desse contêiner, por assim dizer. Mas queremos criar um roteiro, então vamos fazer isso. Ele abrirá imediatamente o script. Você pode ampliar a arte aqui pressionando Control e , em seguida, rolando para cima com a roda do mouse, você torna a menor rolando para baixo. Então é assim que você pode ampliar aqui. Isso também é muito importante. Outro script aqui, na verdade vou renomear isso. Há algumas maneiras de fazer isso. Clique com o botão direito do mouse e você pode ir para Renomear. Você também pode simplesmente pressionar F2 e, em seguida, ele solicitará que você renomeie isso. Ou você pode ir, se você tiver as propriedades aqui embaixo, você pode simplesmente acessar o script aqui e depois chamar isso. Vamos chamar isso de variáveis de 01 traço. Porque esta é, bem, esta é a primeira palestra, por assim dizer, em que estamos realmente entrando nisso. E vamos chamar isso de variáveis. Aí está. Agora, o que é muito importante aqui é que ela já preenche essa coisa em particular com uma impressão aqui. Então, se não fizermos nada, vou deletar o que eu tinha antes. Se não fizermos nada e apertarmos o play, certo? O que você descobre é que, bem, nada acontece porque, no momento não temos nosso console. Na verdade, precisamos habilitar isso ou aquilo. Vamos para Exibir e queremos ir para a saída. Portanto, esta é a nossa saída e agora você pode ver helloworld de, enviado do servidor. Vamos falar sobre isso a partir desse script com um nome, oh, variáveis de um traço. E a partir da linha um, se voltarmos para a guia aqui onde temos nosso roteiro, podemos ver que esta é a primeira linha, linda. Agora podemos parar com isso e prosseguir. Então, vou readicionar meu comentário aqui. Vamos falar um pouco mais sobre comentários e coisas assim. Eu só quero isso no topo do script específico, só para que saibamos que agora estamos no script de variáveis zero um. Então, a impressão com a qual você não se importa. Então, vamos apenas selecioná-lo, pressione Delete para excluí-lo. E vamos falar sobre tipos de variáveis. Agora, como uma visão geral de alto nível, queremos variáveis porque queremos salvar determinados dados. Então, talvez queiramos salvar um número. Isso pode ser uma pontuação alta, saúde, montaria, qualquer coisa assim. Então, vamos dizer que x é igual a dez. E agora, neste caso, toda vez que eu me refiro a x, isso vai representar um número. Nesse caso, isso representa um número inteiro. Um número inteiro é apenas um número inteiro, então será dois ou cinco, ou -27. Está tudo bem. Mas se quisermos algo como 20,8, enquanto isso agora é um flutuador, eu vou fazer isso 20,8, isso é um flutuador. Então, ao declarar isso, certo, quando criamos variáveis, basicamente queremos dizer o nome das variáveis. Então, neste caso, x então é igual. Esse é o operador de atribuição, basicamente o que significa que estamos atribuindo esse valor a essa variável. Se tudo isso é muito novo para você, não se preocupe. Enquanto estiver trabalhando com isso, você será capaz de entender cada vez mais o que tudo isso significa por enquanto. Basicamente, você pode pensar nisso como se x fosse apenas uma espécie de espaço reservado que colocamos em prática. E então, quando o código é executado corretamente, quando o script é executado, então pensamos, ok, com x, eles realmente significam dez. Embora estejamos analisando isso no futuro com um pouco mais de detalhes. Vou imprimir isso para que você possa ver se temos uma impressão e depois um parêntese e colocamos x dentro dela, certo? E então o parêntese final, o que isso vai gerar isso, a questão é que isso vai gerar X é como a letra X vai produzir um dez. Bem, vamos jogar e você verá que ela gera dez porque estamos gerando o valor que está dentro da variável x. Uma boa metáfora que muitas pessoas usam é que variáveis são basicamente apenas compartimentos e contêm algum tipo de dado. Existe um tipo especial chamado nil. Esse é um tipo especial de valor e basicamente representa a ausência de qualquer valor, também chamado de nulo em certas linguagens de programação. Nesse caso, é chamado de nulo. Isso não significa que isso seja zero. Isso significa que não é nada além de outro tipo de variável, ou os booleanos. Agora, os booleanos podem ser verdadeiros ou falsos, às vezes também representados com um ou zero, mas são escritos assim. Portanto, isso é um booleano e eles podem ser verdadeiros ou falsos. Agora, como é isso? Bem, por exemplo, podemos dizer que é um bom curso e, é claro, esperamos que isso seja igual a verdade. E você pode ver que isso também muda de cor. Então, basicamente, essas são certas palavras-chave ou certos tipos de variáveis. Eles podem basicamente mudar a cor da fonte aqui e até mesmo comercializá-la como negrito. Podemos então ter outro booleano, por exemplo, está aterrado. Isso é algo um pouco mais próximo de algo como um jogo. E isso pode ser igual a falso. E você pode ver que às vezes também sugere coisas para nós. Então, enquanto digitamos, certo, o que você pode ver, ele já está ordenado e sugere: Ah, isso deveria ser falso e você pode pressionar a tecla tab para preenchê-lo automaticamente. Por fim, também temos cordas. Agora falaremos sobre isso em uma palestra futura com um pouco mais de detalhes. Mas, basicamente, sequências de caracteres são como palavras e estão sempre cercadas por essas aspas. Então, podemos, por exemplo, dizer HelloWorld. E você pode ver, tudo bem, embora eu tenha um espaço aqui porque as aspas o cercam, podemos salvar a palavra inteira. Você pode se deparar com o fato de que talvez eu realmente queira várias linhas. Essas seriam muitas palavras, por exemplo, e a maneira de fazer isso é criar colchetes abertos e ver os colchetes de fechamento geralmente serem gerados automaticamente. E aqui você pode simplesmente digitar olá, olá estudante e depois vírgula. E então você pode ver, eu posso continuar escrevendo isso. Estou escrevendo porque é divertido ter várias linhas de saudações. Você vai, mas vamos agora várias linhas. E essa é a ideia geral aqui, certo? Então, para resumir aqui no final, à direita, as variáveis em geral, nossos conjuntos de dados que contêm alguns dados, e esses podem ter valores diferentes e podem ser tipos de dados diferentes. Ele pode conter um número normal, que é um número inteiro. Ele pode conter números flutuantes, que são números que têm um ponto decimal. Também pode ser nu, que é a ausência de qualquer valor. Você pode ter booleanos e também pode ter pontos fortes nesta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo . Nos vemos na próxima palestra. Então, sim. 5. (Lua) Saída e comentários: Tudo bem, vamos continuar a introdução de Lula aqui para o curso de bloqueios de estradas. E nesta palestra, veremos os comentários de saída e um pouco de como ler scripts para começarmos novamente No serviço de scripts do servidor, clicaremos na pequena vantagem aqui: criar um novo script. E vamos renomear isso pressionando a tecla F2. E vamos renomear isso para comentários de saída de traços O2. Que tal aquele? Aí está. E então vamos ver o que podemos fazer. Bem, podemos realmente manter essa impressão digital. Na verdade, vou mover isso para baixo. E aqui em cima, vamos criar nosso comentário novamente. Então, isso vai ser saída e comentários. Linda. Aí está. Então, já vimos essa impressão antes e ela produz algo aqui embaixo na saída. Se você não tiver isso novamente, Exibir e habilite-o aqui. Então você pode ver que isso agora está ativado porque tem uma espécie de fundo de botão. E se não estiver habilitado, não tem isso. Então, é basicamente assim que você habilita isso. E aí está. Se tivermos isso dentro de um script e clicarmos em play , o que você verá na saída e verá helloworld do servidor. Vamos explicar isso daqui a pouco. E então a saída de O2 comenta três. Então, mais uma vez, isso é porque isso estava na terceira linha. Vamos parar com isso e continuar com o roteiro. Mas isso já é muito legal. E da última vez falamos sobre a ideia de variáveis. E se tivermos uma variável de saúde igual a 1.000? Mais uma vez, aqui você pode ver que não precisa dos espaços entre isso. Portanto, os espaços são particularmente importantes, como em vez de números, porque agora os números não estão mais conectados entre si entre certas operações, você pode realmente colocar quantos espaços quiser. Eu geralmente não recomendo isso. Um espaço ou zero espaços é basicamente a forma preferida de tornar isso legível. Mas sim, você pode colocar quantos espaços quiser. E agora, em vez de exibir HelloWorld, o que podemos dizer é a saúde do jogador, existe saúde. E então a pergunta se torna, ok, como podemos, como podemos então produzir esses milhares? Claro que poderíamos dizer, bem, são 1.000, isso é ótimo. Mas se agora mudarmos isso para 500 porque talvez tenhamos sido atingidos ou algo assim, isso ainda dirá 1.000. Então, isso não funciona como gostaríamos se mantivéssemos isso em 1.000. E na verdade dizemos, bem, saúde, certo? E então é como, obviamente, vai pegar essa variável aqui. Bem, vamos ver o que acontece. Na verdade, isso não acontece. Diz apenas que a saúde do jogador é saúde, o que obviamente não é bem o que tínhamos em mente aqui. O que queremos é o valor dessa variável e não o nome. Agora, se estiver dentro de uma corda. Então, falamos sobre isso antes, dentro das aspas, então isso é lido como uma palavra normal. Não é uma palavra-chave e não é vermelha como variável. Mas podemos realmente usar as variáveis. Isso funciona. Há duas maneiras de fazer isso. Nós podemos fazer uma coluna aqui. Portanto, isso é específico para a função de impressão nesse caso. Então, depois da primeira string, certo, podemos fazer uma vírgula e depois podemos dizer saúde. Você pode ver que ele realmente sugeriu isso para nós. E então você só pressiona a tecla Tab para completar automaticamente. Em seguida, colocamos outra vírgula e, em seguida, qualquer coisa depois disso também será exibida. Então, podemos dizer HP, por exemplo, e agora o que vai resultar é a saúde do jogador, e então qualquer montaria aqui é salva dentro da variável de saúde e, em seguida, HP logo depois disso. Então, vamos jogar e ver o que ele produz. E você pode ver que a saúde do jogador é de 1.000 HP. Perfeito. Agora, na verdade, há dois espaços lá. Então, o que podemos realmente fazer é parar com isso e podemos até livrar disso, porque agora, neste caso, isso realmente adiciona um espaço. Essa não é a única maneira de fazer isso. Podemos simplesmente copiar esta linha. Então, estou apenas selecionando, pressionando Control C e depois Control V para colá-lo novamente. E em vez de fazer isso, também podemos fazer ponto ponto e depois outro ponto aqui. E o que isso vai fazer, isso, isso vai concatenar essa variável com a string. Então, isso pode ser um pouco mais complicado agora. Mas não se preocupe, falaremos sobre isso um pouco mais em uma palestra futura. E também não deveria ser muito insano. Basicamente, estamos apenas dizendo que isso é uma sequência de caracteres. Essa é uma sequência de caracteres. E embora seja uma variável, na verdade, só queríamos adicionar isso à nossa string específica. Então, ele vai ter quase a mesma saída desta. Mas vamos ver o que acontece aqui. Então, se produzirmos isso, você pode realmente ver que não há espaço no meio porque estamos literalmente pegando a última coisa que está aqui, certo? Ou seja, e então pegamos qualquer que seja essa variável, qualquer que seja o valor real dessa variável, estamos convertendo-a em uma string e, em seguida colocando-a bem ao lado do S neste caso. Então, aqui queremos um espaço. Então, se pararmos com isso e começarmos de novo, você poderá ver que a saída será exatamente a mesma nesse caso, exceto no HP. Porque mais uma vez, venha aqui, isso gera um espaço automaticamente. Não tem nada a ver com esses espaços, aliás , não se confunda com isso. Eu posso simplesmente executar isso. Então, esses espaços não têm nada a ver com isso. Só tem a ver com a forma como a coisa toda é basicamente interpretada, certo? Então, essas são duas formas de produzir aqui. Nesse caso, também é um texto com uma variável, que pode ser extremamente útil, não apenas para fins de jogo, mas também para fins de depuração. Depuração basicamente se refere à tentativa de encontrar problemas ou bugs em seus scripts. E isso às vezes pode ajudar muito. Por fim, também queremos falar sobre bens comuns, onde você já viu os comentários com os dois traços. Então, este é basicamente um comentário de uma linha que eu posso fazer. Eu posso apenas dizer algumas coisas interessantes, certo? Então, isso pode ser para explicar coisas para você ou outras pessoas lerem seus roteiros ou coisas do tipo. Agora, eles só funcionarão para uma linha. Então, se eu fizer outra linha aqui, você pode ver, de repente, que somos todos uma espécie de comentário. E você também não precisa adicionar os traços aqui no final. Isso é algo pessoal que eu faço, então isso não é necessário. Você também pode mantê-lo assim e tudo funcionará totalmente bem. há uma peculiaridade pessoal Agora, há uma peculiaridade pessoal em que você realmente precisa adicionar mais coisas para comentários de várias linhas. Portanto, ainda podemos fazer os dois traços e, em seguida, podemos abrir os colchetes. Mais uma vez, você pode ver os colchetes de fechamento gerados automaticamente. E então, dentro daqui, temos um comentário de várias linhas. Aí está. Isso é incrível. Aí está. Então você pode ver que agora é um comentário de várias linhas e qualquer coisa entre os colchetes aqui é basicamente tudo o que vamos ser interpretados como um comentário. Você pode até mesmo fechar isso com a pequena seta aqui. Então isso vai ser um pouco melhor. Você pode até mesmo fazer isso. E então ele vai fechá-lo. Vai fechá-lo desse jeito. Isso é interessante. Ok, bem, aí está. Essa é uma maneira muito interessante de fazer isso. Esse é um comentário de várias linhas. Vimos algo semelhante em que examinaremos o verso das variáveis. Vimos a sequência de várias linhas aqui com a mesma ideia quando, neste caso será apenas com comentários. Mas, como já expliquei, nota importante, é claro todos esses scripts estão sempre disponíveis para download. Portanto, os scripts estão disponíveis, assim como o arquivo RB XL para cada palestra diferente está sempre disponível para download. Então você pode basicamente verificar tudo, ver um por um. Então, se você tiver uma saída diferente ou algo parecido, você sempre pode verificar o código, certo? Resumindo, mais uma vez, podemos ver que a função de impressão é uma forma de gerar algo. Normalmente, você deseja gerar uma string, certo? Então, se você escrever impresso, verá que isso já sugere isso, e você pode pressionar a tecla Tab dentro dela começar a digitar. Agora, normalmente você deseja digitar uma string. Então você quer começar com as aspas e então você pode simplesmente dizer as coisas lá dentro. E isso será exibido dentro da janela de saída. E depois também há comentários. Comentários normais começam com traço, traço e, em seguida, o que você quiser escrever, são comentários de uma linha. Comentários de várias linhas funcionam com um traço, traço e, em seguida, os colchetes abertos. Bem, isso vai ser o fim desta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo . Nos vemos na próxima palestra. Então, sim. 6. (Lua) Operações de matemática: Tudo bem, bem-vindo de volta à introdução do banheiro aqui para o curso Roblox. E nesta palestra, vamos dar uma olhada nas operações matemáticas. Então, para isso, mais uma vez, nos servidores de scripts do servidor, criaremos um novo script e o renomearemos para A3 dash Maths. Porque por que não? Aí está. Agora, vamos então adicionar nosso pequeno comentário interessante aqui, operações matemáticas. E vamos ver quais tipos de operações matemáticas existem. Bem, claro que há adição, essa é a primeira e a ideia é a seguinte, certo? Portanto, podemos ter uma soma e isso pode ser, por exemplo, 20. Então, isso vai ser mais uma vez uma variável. Nosso 20 é o valor e alguns é o nome da variável. E agora o que podemos fazer é dizer, bem, que alguns deveriam realmente ser 20 mais 50, por exemplo, agora isso deveria ser 70. Então, vamos dar uma olhada. Então, se eu fizer outra impressão aqui, e eu vou dizer que soma é, vamos usar essa. Então, vamos dizer soma. Aí está. Então, agora ele vai gerar a variável soma. Agora, primeiro, na verdade , a soma é igual a 20. Na verdade, vamos mudar isso para dez. Então, serão 60 porque isso vai demonstrar isso um pouco melhor. Então, primeiro, vamos dizer que a soma é igual a 20. Dizemos que a soma é igual a dez mais 50. Então, o que vai sair e ouvir, alguns de vocês podem dizer, bem, vai ser 20 mais dez mais 50 ou algo parecido. Vamos jogar e ver o que acontece. Você pode ver que alguns são 60 porque a última coisa que acontece aqui é que a variável recebe o valor de dez mais cinco. Portanto, esse é simplesmente ignorado ou sobrescrito porque o código é sempre avaliado de cima para baixo. Então, começamos na linha um e ela vai passar , passar e passar. E então, nossa soma agora é 20, e na próxima linha, nossa soma agora é 60 porque eu basicamente calculei essa expressão como dez mais 50. Essa é a ideia geral. Eu também posso fazer, ou seja, posso dizer, bem, na verdade, o que eu meio que quero fazer é ter outro. Então, digamos que essa será a segunda soma porque, por que não? E isso é igual à soma mais alguma outra quantia, certo? Então, mais 50 ou mais 150 pode ser o que quisermos. E agora o que isso vai ser? Bem, alguns têm o valor de 20. Então, em teoria, isso deveria ser 20 mais 150, que deveria ser 170. Então, se fizermos isso, podemos ver que alguns são 20. Agora você pode dizer, espere, como estão os 20? Ah, bem, olha isso. Estamos gerando a variável soma e agora a segunda variável de soma. Portanto, sempre há algo que você deve ter em mente. Então, mais uma vez, se eu escrever isso, você pode ver que isso já sugere isso para nós e então podemos simplesmente pressionar a tecla Tab para completar automaticamente. E agora estamos gerando a segunda variável de soma. E agora devemos ver que a soma é 170. Agora você também pode ver todas as outras saídas aqui na saída. Está tudo bem e você pode mantê-lo assim. No entanto, se isso ficar muito confuso para você, basta ir para os outros e simplesmente adicionar comentários aqui a todas as linhas de impressão nos outros scripts, para que você também não tenha as saídas . Portanto, tenha isso em mente. Então isso é adição. Vamos dar uma olhada na subtração agora. Você pode imaginar como isso vai parecer? Bem, vamos fazer a, vamos chamar isso de subtração. E isso é igual a, bem, por exemplo, algo como 25 -50. Isso vai funcionar? Isso vai ser um número negativo. Enquanto isso, quero dizer, vamos ver a impressão correta. E nós vamos dizer que isso vai ser apenas subtração é , e então, mais uma vez, vírgula, e então vamos colocar a subtração mais uma vez, preenchendo automaticamente com a tecla Tab. Vamos deixar isso acontecer e ver o que acontece. E você pode ver que a subtração é menos 25, isso não é absolutamente nenhuma preocupação. Números negativos são totalmente bons. Então isso funciona com números negativos, números não negativos, certo? Também podemos ter 150 -50 e depois será 100. Então isso é muito legal. A próxima coisa é, claro, a multiplicação. Agora essa vai ser a pergunta mole t. Vamos chamar isso de multitarefa, vai ficar bem. Como isso funciona? Bem, isso é feito com uma estrela. Então isso é cinco estrelas, 40 por exemplo e então deveria ser o que deveria ser? 200? Sim, exatamente. Serão 200. Então, isso vai ser multiplicação é, e mais uma vez, basta fazer isso chamado de multi aqui. E isso vai fazer exatamente a mesma coisa. Agora, mais uma vez, o que eu quero dizer aqui, você não precisa colocar espaços no meio. Você pode colocar espaços no meio, mas não precisa. É a mesma ideia quando você coloca os espaços aqui, pois o espaço está aqui. Como a ideia é que agora é um operador de multiplicação que usa dois números inteiros nesse caso, você também pode, é claro, fazer isso. Oh, o que isso vai fazer? Bem, quero dizer, vamos tentar isso. Vamos ver o que acontece cinco vezes 40,5 é 202,5. Isso é absolutamente correto e também funciona. Portanto, você também pode usar números flutuantes. Basicamente, ele faz isso sozinho. Então, isso também é muito legal. Agora, a divisão é a única coisa um pouco mais interessante. A divisão é, obviamente, divisão e isso é igual a, por exemplo, 20/3. Digamos que algo assim. Ok, isso é interessante. Então, vamos fazer a divisão. É, e então vamos chamar isso e ver o que isso nos dá 20/3, eu não sei. Bem, é 6,66, 666666 repetindo até chegar a sete. Então essa é uma ideia degenerada. Portanto, lembre-se disso quando tiver coisas que não se encaixam perfeitamente. Então, 21/3, é claro, seriam sete. Então, se fizermos isso, obteremos apenas sete. Isso é ótimo. Mas se você tiver algo que não seja divisível uniformemente , obterá um número decimal. E isso também é muito importante. Se tentássemos dividir por zero. Isso é algo que você pode ou não ter ouvido antes. Se você somar com zero, bem, você obterá o infinito. Então, isso é uma coisa muito interessante e essa é uma peculiaridade de Lu são mais ou menos, você pode realmente dividir por zero. Você não deveria fazer. Ainda é como se isso fosse algo que na verdade não deveria ser uma coisa. E, nesse caso, você obtém o infinito. Na maioria das linguagens de programação, geralmente você receberá um erro se isso acontecer. Portanto, tenha isso em mente. Normalmente, você quer ter certeza não dividir por zero. Mas há outra coisa que pode ser muito interessante, que é a lei modal, também chamada de resto e essa, certo? Vamos chamar isso de resto. E isso é igual a, digamos, por exemplo, o 20. E então será um sinal de porcentagem e isso imprimirá o restante. O restante é, vamos imprimir o restante e vamos realmente ver o que isso vai ser. E então você verá rapidamente o que isso faz. Na verdade, vamos dividir por três ou como o restante de três. E então você verá que o restante aqui são dois. Portanto, a ideia geral é que basicamente passar pelo processo real de divisão e depois dizer que esse é o restante, eu recomendo também verificar o restante. Isso é uma coisa normal. Eu acho que isso deveria ser ensinado na aula de matemática. Isso deve ser algo que é ensinado na aula de matemática. E, na verdade, pode ser muito, muito importante para certas coisas na programação aqui neste caso, porque se fizéssemos o restante de dois, então 20 O2 modais, essa é uma forma de verificar se um número é par ou ímpar, porque nesse caso é par, certo? Então, se jogarmos isso, obteremos um zero. Então, basicamente, podemos dizer: Ei, se esse número e depois fazemos módulo dois é igual a zero, sabemos que é um número par. E se o fizermos, podemos fazer qualquer número ímpar, o que, neste caso, 21, não importa. Então vamos comprar um. Então, se o restante for zero, então sabemos que, neste caso, se fizermos O2 modal, se o restante for um com modal ou dois aqui, então sabemos que o número, o número original, é um número ímpar. Se for zero, então é um número par de muito interessante. Por último, mas não menos importante, existe algo chamado incremento e decréscimo. Isso basicamente diz que queremos adicionar um a um número específico. Então, por exemplo, podemos ter um número de cinco frios, certo? E então, em outras linguagens de programação, dependendo se você programou antes ou não, você pode fazer coisas como número mais mais ou número menos menos. Agora, o que você verá é que isso não funciona, ok? Podemos apenas comentar isso, certo? Vamos apenas dizer que eles são e então isso vai ser como se não funcionasse porque simplesmente não funciona. É apenas algo que o baixo não nos oferece. No entanto, há coisas que podemos fazer para aumentar ou diminuir esse número. Então, basicamente, podemos dizer que o número é igual a si mesmo mais um. Isso vai pegar qualquer número definido como neste caso cinco e depois adicionar um a ele, certo? Então, mais uma vez, isso não é nada louco, é apenas dizer que o número é igual ao número de mais um. Então, estamos apenas pegando o que quer que seja essa expressão e depois salvando-a novamente em número. Ok, isso é justo. Também podemos ter número mais igual a um. Isso está fazendo exatamente a mesma coisa. É um pouco mais compacto e escrito em uma linha. Essas são exatamente as mesmas coisas que eles fazem, é exatamente a mesma coisa. A razão pela qual você quer conhecer os dois ou já viu os é que algumas pessoas preferem fazer assim. Algumas pessoas preferem fazer isso assim. Então, se você lê os roteiros de outras pessoas, é muito importante ter visto os dois. E então, é claro, a mesma ideia vale para menos neste caso. Agora, você pode até mesmo estender isso e dizer, bem, o que é, o que acontece com isso, certo? Se fizermos vezes iguais, números absolutos, talvez queiramos fazer divisões iguais. Isso funciona? Ou seja, eu nem sei qual será o verão lá, mas o número da costa agora enlouquece. Módulo é igual, na verdade, sim, também podemos fazer isso. Agora, esse eu nunca vi como realmente necessário em nenhum lugar, nunca. Esse aqui. Pode haver certos momentos em que isso possa ser útil, mas sim, maioria das vezes você os usará , talvez esses três. E essas duas são coisas muito específicas que são muito, muito raras. Mas, mais uma vez, ter visto isso pode ser muito importante, certo? Para recapitular, operações matemáticas são exatamente o que dizem na lata, certo? são operações que executam Neste caso, são operações que executam determinadas funções matemáticas, certo? Portanto, some apenas um símbolo de mais, um símbolo de menos para subtração, uma estrela para multiplicação e a barra para divisão. E neste caso também a porcentagem do modelo ou do restante. Então, isso é apenas matemática normal. Agora você pode dizer: por que eu preciso de matemática nisso? Há muitos momentos em que você pode precisar de um pouco de matemática, certo? Portanto, pode ser que você tenha uma arma e depois tenha um certo multiplicador de efeitos para danos, e então o jogador adversário tenha certa armadura. E você quer ter certeza de que a saúde ou o dano foram gerados corretamente, calculados corretamente. É aí que entra toda a adição, subtração, multiplicação, divisão ou isso. E tudo isso vai ser algum tipo de coisa, vai sair no final. Isso vai ser isso, o dano. Então, Nath pode realmente ser muito, muito importante. Agora, esses são, obviamente, apenas os fundamentos da matemática. Mas com eles como blocos de construção, você já pode construir algumas coisas bem legais onde quer que seja para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo . Nos vemos na próxima palestra. Então, sim. 7. (Lua) Operações relacionais e lógicas: Tudo bem, bem-vindo de volta à introdução do banheiro aqui para o curso Roblox. E nesta palestra, vamos dar uma olhada em operadores relacionais e lógicos hoje em dia parece muito complicado, mas, mais uma vez, não se preocupe, vamos abordar isso primeiro: criar um novo script no serviço de criar um novo script no script do servidor aqui. E vamos chamá-lo de 04 dash. Vamos chamar isso de lógica relacional. Aí está. E, mais uma vez não precisamos do HelloWorld, onde precisamos de operadores relacionais e lógicos, às vezes também chamados de operações relacionais e lógicas. Qualquer um deles praticamente funciona. Mais uma vez, não se esqueça de comentar a impressão se você não quiser que ela fique completamente cheia de spam na saída. E então vamos pensar sobre isso. Então, o que é um relacional, o que são operadores lógicos? Nós, os relacionais, basicamente, estão analisando dois valores e estão basicamente avaliando a relação entre eles. Então isso seria menor que, maior que menor ou igual, maior ou igual. Também temos iguais e também não iguais. Então, esses são basicamente todos os operadores relacionais e eles produzem um, eles produzem um valor booleano, certo? Então, mais uma vez, isso significa que, se você pensar nos tipos de variáveis, isso é verdadeiro ou falso. Agora, isso não deve ser nada insano aqui. Claro, se eu disser, bem, 20, menor ou igual a 25, só existe, só pode ser verdadeiro ou falso. Não há imprecisão, certo? Não há como um. Se for 50 por cento pequeno, não é disso que estamos falando. Estamos apenas dizendo, ei, isso é menor do que isso, ou isso é igual a isso? E essa é a ideia geral. E operadores lógicos são operadores que usam dois valores booleanos e os avaliarão. Esses são o operador OR final e, nesse caso, o operador NOT é, esses são os mais importantes. Existem alguns outros também. Se você estiver realmente interessado nisso, você pode pesquisar álgebra booleana. Esse é basicamente o termo a ser examinado. E isso basicamente nos deixa um pouco mais envolvidos. Mas, por enquanto, não estamos muito preocupados com isso. Então, quando pensamos sobre isso, podemos dizer um teste, por exemplo, aqui está três, menor que 20. É claro que isso é verdade no nosso caso. Podemos simplesmente imprimir isso, certo? Então, digamos que três é menor que 20? E vamos imprimir isso. Vamos imprimir o teste aqui. Aí está. Mas vamos jogar isso e ver o que acontece. E vai ser impresso como verdadeiro porque são três, na verdade, são menores que 20. Isso é muito interessante, você pode ver isso, avalia essa expressão e torna booleana neste caso verdadeira. Agora também podemos dizer, digamos que testes aqui novamente, tudo bem. Isso é 20 é maior que 200. É claro que isso será falso. E então vamos simplesmente selecionar esse controle de pressão C, vá aqui , pressione Control V para colá-lo novamente. E então estamos apenas mudando isso. É 20 maior do que 200 porque agora estamos dizendo que 2020 é maior que 200, o que obviamente é falso. Vamos deixar isso tocar novamente. E veremos se 20 maior do que 200 é falso. Isso é exatamente certo, porque esse não é o caso. Esses são os exemplos de maiores. E então a mesma ideia se aplica a iguais menores, certo? Então, também será verdade se for igual. E então, se isso fosse igual, certo? Isso agora seria falso. Certo? Deve fazer sentido porque, bem, 20 não é menor que 20 é igual a 20. Se fizéssemos isso, de repente, isso se tornaria realidade novamente. Espero que isso faça sentido aqui neste caso. Agora, quando se trata do operador equals, digamos, por exemplo , que temos uma string, uma que vai ser hello, e depois temos uma string também, que também é chamada de hello. Por que não? Aí está. Em seguida, fazemos uma comparação disso. Por que não comparar? Isso é igual a, e então dizemos que cadeia um igual a dois sinais iguais. Esse é o operador de igualdade relacional que analisa essas duas cadeias de caracteres, certo? E gera um valor booleano. Este é o operador de atribuição, muito, muito fácil de confundir um com o outro. Mas o que você deve entender é que você pode ver que receberá um erro se tiver um único. Então, esse sublinhado vermelho aqui, basicamente, você vê, é como se, oh, isso não fizesse nenhum sentido para mim. Absolutamente não se preocupe. Dois sinais de igual são o operador relacional. Um sinal de igual é o operador de atribuição. Muito, muito importante. Agora imprima, vamos imprimir isso e imprimir a comparação. E devemos obter, em teoria, uma verdade, certo? Então, vamos ter a, a primeira impressão, se essa é verdadeira, a segunda é falsa. E aqui teremos apenas uma norma, apenas uma saída verdadeira. Vamos apenas ver. E vamos ver o que é verdade, absolutamente incrível. Então isso definitivamente funciona. Agora, se eu mudar alguma coisa aqui , até mesmo o invólucro, porque agora eles não são mais exatamente iguais. Então, o que vai acontecer é falso porque, nesse caso, os dois não são iguais porque a caixa é sempre levada em consideração porque esse é um caractere diferente e, portanto, eles não são exatamente iguais. Mas isso seria uma dessas coisas. E não faça isso. Este é apenas um exemplo aqui. Então você, para você meio que entender isso. Isso é mais ou menos o que você faria, certo? Quando você tem uma senha e fica tipo, ok, isso é o que a pessoa tem. Digitei, e esta é a senha que eu armazenei, vermelha. Esses são iguais? E só se for verdade, você vai deixá-los entrar. Agora, não faça isso, não salve senhas como essa. Isso é algo que deve ser feito apenas por pessoas avançadas. Muito, muito, só para você começar a pensar sobre isso, ok, essa é uma daquelas maneiras em que você pode ver uma comparação ser importante. Agora, quando se trata dos operadores lógicos, fica um pouco mais complicado aqui, porque aqui nós realmente queremos pegar vários valores booleanos e colocá-los como se fossem colocados um ao lado do outro. E eles então meio que, você sabe, essa é uma extensão lógica para isso. Então, por exemplo, o que você poderia fazer é, digamos que x é igual à comparação. Então, vai pegar o valor de comparação aqui, que neste caso será verdade. E então podemos colocar um operador e aqui. E então o segundo valor tem que ser outro booleano. Então, por exemplo, poderíamos dizer, vamos testar aqui, certo? Então agora vai dizer, bem, se a string coincidir e o teste for verdadeiro, então x será verdadeiro, certo? Então, nesse caso, a comparação será verdadeira e o teste será falso, certo? Então, isso é o que acontece aqui atualmente, certo? Porque o teste aqui é falso. Então, se agora imprimirmos x é apenas para fins do argumento x, aqui ou ali está. Se fizermos isso extra, seja falso e você poderá ver que x é falso. Por que esse é o caso? Bem, porque o operador final diz que ambos os valores booleanos precisam ser verdadeiros para que toda a expressão seja verdadeira. Agora, mais uma vez, se isso é um pouco complicado para você no momento , não se preocupe. Isso é algo com o qual você só precisa brincar um pouco. Então, o que eu recomendo fortemente que você faça é abrir esse script lógico relacional aqui e brincar com isso. O que é ainda mais louco é que você pode usar isso quantas vezes quiser. Então eu posso dizer: “Fim de verdade”. E talvez outra que queiramos dizer, bem, 20 é maior ou igual a 50, algo assim, certo? Então você pode ver, você pode juntá-los o quanto quiser. Mais uma vez, pode ser um pouco complicado. É sobre testar isso e experimentar algumas coisas conosco, certo? Vou apenas copiar isso e também vou criar um operador de sala de cirurgia aqui. Então isso vai ser, agora vai ser verdadeiro ou falso. O que acontece com o or significa que um ou ambos precisam ser verdadeiros para que a saída seja verdadeira. Então, nesse caso, verdadeiro ou falso significa apenas que a comparação é verdadeira. E então nem nos importamos o resto, porque um deles é verdadeiro. Isso vai ser verdade. Então, podemos ver, digamos que X1 e X2, só para entendermos que a diferença está aqui. E se jogarmos isso, você pode ver que x2 é verdadeiro porque aqui estamos usando o operador or e isso só importa se um deles é verdadeiro e toda a expressão é verdadeira. Como eu disse, não é realmente uma coisa avançada, é apenas uma daquelas coisas que não são realmente ensinadas no início da escola. É basicamente apenas lógica formal? Não há nada de louco nisso. E mesmo que pareça um pouco intimidante, na verdade não é. Mais uma vez, sente-se um pouco, brinque um pouco com isso e você descobrirá que isso realmente não é uma loucura. Agora, uma última coisa, vamos fazer a comparação aqui também. E então o que vamos dizer é que na verdade, queremos negar isso. Isso significa que isso realmente não é um teste. Agora, isso pode ser como o FREC é isso, isso é muito louco. Bem, estamos basicamente negando isso falso ou estamos invertendo isso. Então, negar simplesmente significa que estamos transformando isso de falso em verdadeiro. Ou se isso já era verdade, então para um falso. Então, às vezes você verá isso escrito assim com um ponto de exclamação na frente. Mas isso significa apenas que tudo isso é verdade, certo? Então, de repente, isso não é falso, o que será igual a verdadeiro, certo? Deixe-me fazer isso. Então isso fica um pouco mais claro, certo? Então, estamos negando o teste de que tudo o que está escrito na variável de teste, neste caso é falso. E estamos transformando isso em verdade. Mais uma vez, se você não entender isso imediatamente, brinque um pouco com isso. Eu recomendo fortemente que você realmente queira digitar e imprimir coisas e depois começar um pouco com isso e dizer: Ok, agora você entendeu, porque, na verdade, aplicar isso é muito mais importante do que apenas me ouvir, como explicar isso umas dez vezes. É melhor você sentar e dizer, ok, o x é isso e depois o y é isso, e então é como n nada, e depois imprima. Mas, para fins de argumentação, vamos ver que x3 será verdade. E você descobrirá que o X3 realmente é verdadeiro. Porque, mais uma vez, a comparação é verdadeira e o oposto do teste também é verdadeiro. Portanto, isso é verdade. Recapitulando rapidamente, seus operadores relacionais e lógicos têm tudo a ver com valores booleanos. E basicamente nossas operações que comparam dois valores, dois ou mais valores em alguns casos, e fornecem um valor booleano a partir disso, certo, verdadeiro ou falso. Há menor que, maior que igual, não igual, e também os operadores lógicos AND, OR e NOT . Nesse caso, essas operações simples são, na verdade , tudo o que o computador gosta. Quando você desce para o mais baixo, é onde estão todos os uns e zeros dos quais você já deve ter ouvido falar antes. Isso é tudo o que eles usam e, ou. E então alguns operadores relacionais, isso é tudo o que eles usam, nada mais. Então, com isso vem um grande poder, na verdade, como na programação, é por isso que eles são muito importantes. Mais uma vez, aqui no final, eu queria basicamente dar a você o ímpeto de dizer, ok, realmente sente-se por uns bons dez, 20 minutos e teste como eles funcionam. Se você não os entendeu, se você os entendeu, absolutamente ótimo. Eu ainda estava implorando que você os experimentasse um pouco. Se você não os entendeu, tente novamente. Eu recomendo fortemente que, se, claro, restar alguma dúvida, não hesite em perguntar. Caso contrário, será isso para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo. Nos vemos na próxima palestra. Então, sim. 8. (Lua) Se e outras declarações: Tudo bem, bem-vindo de volta à pequena introdução aqui para o curso de bloqueios de estradas. E nesta palestra, daremos uma olhada nas declarações “if” e “ else”. Então, agora estamos realmente nos aprofundando nisso. Mais uma vez, nos servidores de scripts do servidor, vamos criar um novo script e vamos renomeá-lo com cinco traços, caso contrário. Que tal isso? Aí está. Estou bem, mais uma vez, vou fazer todos os cinco, se não for o caso. Agora, se as declarações forem muito, muito interessantes, vamos supor que o que temos, por exemplo é que podemos ter uma quantia de ouro que será de 100. E então talvez tenhamos uma nota, talvez você tenha uma nota Digamos que mal passamos dos 65, algo assim. E então também temos um valor booleano. E isso vai ser, é claro que é bom. E isso vai ser igual à verdade. Vamos supor que esse seja o caso. Agora, o que podemos fazer com outras afirmações é que podemos basicamente interromper o fluxo de cima para baixo e dizer: Ok, se algo for verdade, então faça isso. Ou se algo mais for verdade, então faça isso. Então, por exemplo, podemos dizer que se é grosseiro Bom, você pode ver que sugere que isso era desigual, nos diz que é um booleano. Então, vamos pressionar a tecla Tab para preencher automaticamente. Então dizemos que, quando pressionamos a tecla Enter, a extremidade aqui é gerada automaticamente. E agora isso é extremamente importante. Você pode ver que nosso cursor aqui está realmente recuado. Portanto, é o mesmo que se eu pressionasse a tecla Tab e você pudesse ver o mesmo recuo acontecendo aqui. E isso ocorre automaticamente porque agora estamos dentro dessa declaração if. E você tem que realmente estar ciente do recuo de escrevê-lo assim. Então eu posso escrever coisas aqui. Não acho que seja tecnicamente errado, mas parece muito estranho. Então, basicamente, uma vez que você está dentro de uma instrução if ou de uma função que veremos mais tarde e coisas assim. Você sempre tem um recuo e sim, se eu tivesse outro se dentro daqui, em vez disso, se recuássemos outro tipo para fins de argumento, vamos continuar com isso. Então isso vai imprimir algo e vai produzir Brent. Sim, é um curso muito bom. Então aí está. Então, desde que o bom seja verdade, vamos imprimir isso. Vamos jogar isso por uma questão de argumentação. É verdade. Então, sim, é um curso bonito, é muito bom. Bem, vamos nos certificar de que também diz que é um curso muito bom. Mas agora vamos dizer falso. Vamos resolver que esse não é o caso, mas se for, vamos jogar e não temos saída. Porque nesse caso, tudo entre então e fim só será executado se isso for verdade. E agora estamos realmente começando a usar essas ferramentas diferentes. Isso é basicamente cada uma dessas palestras. É outra ferramenta em seu kit de ferramentas que você precisa para entender o básico que virá posteriormente com todos os obstáculos. E essa é uma das maiores e mais importantes declarações, se e depois. Então, por exemplo, também poderíamos pensar em algo assim. Digamos que vamos adicionar outro aqui. Isso pode ser algo como o pedágio. Então, talvez exatamente onde você queira atravessar a ponte e o total seja 150 de ouro. Então, o que podemos, por exemplo, dizer é, bem, se nossa meta que temos é maior ou igual ao pedágio, certo? Então podemos dizer imprimir, o jogador pode passar. Mas talvez queiramos dizer: “ Bem, na verdade, não queremos terminar aqui. Portanto, podemos substituir essa extremidade por outra. E então, mais uma vez, você pode ver que é outra coisa. Se eu apertar o botão de toque, posso completar automaticamente e pressionar Enter, que gera outra extremidade aqui. Portanto, podemos dizer que se o ouro for maior do que o pedágio, o jogador poderá passar. E se não for esse o caso, então podemos dizer que o jogador não pode passar, certo? Então, podemos simplesmente clicar em play. E podemos ver que, se olharmos para isso, jogador não pode passar porque o ouro é, na verdade, menor do que o canto superior direito. Só temos 100 de ouro, mas precisamos de 150. Portanto, isso é impresso. Então, tudo no resto é impresso. Se isso for falso e tudo aqui for impresso se for verdade, também podemos fazer algo assim, certo? Então, podemos dizer que agora é uma maneira muito grosseira de fazer isso, mas é verdade, certo? Então, podemos dizer que o ouro atual, digamos que o ouro será armadura, ouro, certo? Então, basta colocar as saídas, o ouro também. E o que podemos fazer é, se passarmos, bem, nós realmente queremos fazer ouro menos igual a qualquer que seja o total, somente se realmente passarmos com sucesso, porque senão não queremos fazer isso. Então, agora vamos ver qual é o objetivo depois de avaliarmos isso? Bem, vai ser, bem, 100, certo? Porque não pagamos nada. Porque, de fato, podemos pagar porque nosso pedágio é, bem, aqui é 150 e nem podemos fazer nada. Vou tornar essa etapa mais complicada, mas você entenderá esse local, digamos que está em casa, certo? Então, estamos em casa agora. E se passarmos, digamos que estaremos no centro da cidade. Digamos que, para fins de argumentação, se não passarmos, nem precisaremos mudar a localização, então podemos dizer ouro atual. Vamos apenas copiar isso e então podemos dizer a localização atual. Depois, também podemos imprimir a localização. Ok, vamos jogar isso mais uma vez. E então veremos, certo, que ainda estamos em casa e ainda temos 100 de ouro. Mas agora e se eu mudar o pedágio agora? Na verdade, custa 69 para passar? O que vai acontecer agora? Bem, agora nosso ouro é maior ou igual ao pedágio, o que significa que podemos passar. Nossa localização mudará para o centro da cidade e vamos subtrair qualquer meta que tenhamos, como o pedágio de nosso Deus. Então, vamos jogar isso e ver, e de repente podemos ver que agora temos 31 de ouro e estamos no centro da cidade. Agora, é claro, nada no jogo em si mudou. Neste caso, alteramos apenas uma ou duas variáveis. Mas talvez você já possa ver como é incrivelmente poderoso ter essas declarações e poder juntá-las. Você pode colocar outra declaração if aqui. Há todo tipo de coisa que você pode fazer, o que é realmente incrível. Essa é realmente uma das coisas que, quero dizer, é muito legal ver esse tipo de coisa ganhar vida. Espero que este seja um exemplo realmente ilustrativo disso, porque eles têm declarações e as declarações se mais são realmente, muito incríveis. Agora, digamos mais uma vez, a última coisa. Então, temos uma nota aqui e digamos, por exemplo , que queremos verificar se essa pessoa foi aprovada. Então, podemos dizer se a tela é maior ou igual a 50, por exemplo então vamos dizer, na verdade, vamos fazer o contrário. Então, digamos que se for menor que 50, imprimiremos uma falha, certo? Porque então falhamos. Agora vamos substituir isso por outro. Mas você sabe o que, na verdade, quando é substituído por outro, porque eu quero verificar se a nota é maior ou igual a 50 e também é menor. Tão bom é menor que 100 deles. Então eu quero fazer algo específico. E então eu quero outra, porque você pode acorrentá-las o quanto quiser. E então isso vai fazer outra coisa. Então, isso vai ser impresso, digamos que passado por aqui, isso é ótimo. E aqui, se você obtiver 100, certo, isso aconteceria se você obtivesse 100 ou mais. Mas vamos pensar nisso por um momento. Mas se tivermos 100 ou mais , diremos que eles foram aprovados com honras. Porque por que não, certo? Porque isso é muito legal. Então, agora temos 65 para a nota. Portanto, devemos ver a saída B anterior. Vamos ver se isso funciona. E você pode ver que o passado é de fato uma saída. Isso é muito bom. Vamos parar com isso e depois voltar aqui e realmente mudar isso para, digamos, 100. Agora devemos passar conosco. Vamos ver. Vamos jogar isso. E podemos ver que foi aprovado com honras. Isso é ótimo. Podemos até dar um passo adiante. Digamos que, para fins de argumentação, queremos adicionar outro aqui. O que podemos fazer é adicionar outro se, e podemos dizer se for maior, maior que 100. Agora vamos, vamos fazer assim. Digamos que se ótimo é igual a 100, então fazemos isso, certo? E depois vamos fazer outra. E isso basicamente vai ser que, se for qualquer coisa menos 100, e então podemos dizer mais, mais de 100 não é possível. Você trapaceou. Então, algo assim, mais de 100 não é possível que você tenha enganado. E agora, se eu fizesse 101, de repente, obteremos mais de 100, não é possível. Você trapaceou. Então, se você não entende muito bem a lógica disso, pense nisso, certo? Qual é a nota agora? Ótimo como 101. Isso é menor que 50? Não 101 não é menor que 50. Portanto, vamos para o senão se, agora estamos verificando, é maior ou igual a 50? Na verdade, é maior ou igual a 50. Mas isso também tem que ser verdade porque estamos usando o operador lógico AND right, então essas duas coisas precisam ser verdadeiras para que toda a afirmação seja verdadeira. E como ótimo é maior que 100, vamos fazer o contrário, se agora estamos parecendo Ótimo, igual a 100, não é igual a 100, verdade é 101. Portanto, vamos para o outro lado aqui. E como não temos uma declaração if, estamos apenas dizendo, ok, agora estamos usando o L, então tudo aqui é executado, o que significa que isso é impresso. Bem, espero que esses sejam alguns exemplos interessantes de declarações se e mais, como você pode usá-las e por que elas são. Então, na verdade, muito, muito incrível. Você pode ver que, como nós já fizemos, quase fizemos um pequeno jogo aqui, apenas com uma declaração de ouro, com um pedágio. E isso já é realmente incrível, certo, para uma pequena recapitulação, mais uma vez, se as declarações usam valores booleanos para avaliar algo, certo? Eles podem usar um valor booleano normal. Você pode usar os operadores relacionais e lógicos para agrupar esses booleanos. Como vimos de várias maneiras, podemos usar as instruções if e else if and else para agrupar essas instruções if. E então tudo dentro dessa instrução if for executada. Se a expressão booleana for verdadeira, realmente uma coisa muito legal. E eu, mais uma vez, recomendo que você brinque um pouco com isso em seu próprio tempo. É muito, muito incrível. Bem, isso é tudo para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo . Nos vemos na próxima palestra. Então, sim. 9. (Lua) Variáveis locais: Tudo bem, bem-vindo de volta à introdução do banheiro aqui para o curso Roblox. E então, nesta breve palestra, falaremos sobre variáveis locais. Então, para isso, mais uma vez, no serviço de script do servidor, vamos criar um novo script e chamaremos isso de 06 traços de local. E é claro que isso também terá uma variável local O6 comum. Agora, esse não é um tópico extremamente importante. No entanto, eu queria, basicamente falaremos sobre isso uma vez. Então, variáveis locais antes, quando tínhamos uma variável fazíamos x igual, sei lá, como 100 e pronto. Agora, também podemos colocar a palavra-chave local na frente dela. E você pode ver que é uma palavra-chave porque fica em negrito e também em vermelho. Então, agora podemos dizer que o y local, por exemplo, é 50. Agora, por que isso seria importante ou por que não? Bem, a ideia geral é que uma variável local basicamente faz com que ela a restrinja onde está acessível. Agora, neste caso, na verdade, não importa, porque podemos simplesmente imprimir x e que tudo ficará bem e imprimir y e tudo ficará bem. Então, os dois vão simplesmente funcionar. Digamos que temos uma declaração if e vamos dizer que x é, digamos, maior que cinco, e então queremos fazer alguma coisa. Agora, se ao invés disso, se alguém, digamos que esta afirmação seja realmente complicada, muito complexa, e nós realmente precisamos de algumas variáveis dentro dela para funcionar. Poderíamos dizer algo como, por exemplo, z é igual a 100. Isso funciona. E então podemos usar isso aqui e o que quisermos fazer. E a loucura é que podemos até mesmo usar esse Z fora dessa declaração if. Então você pode ver que o Z aqui está acessível fora dessa declaração if, mas isso nem sempre é o que queremos porque, em primeiro lugar, isso pode confundir a pessoa que está usando isso, certo? Então, talvez nós realmente não queiramos isso. Z só pode ser usado nesta declaração if. E depois disso, o que quer que se torne, qualquer valor que tenha nem sequer é representativo de nada do que queremos. Esse pode ser o caso. Se for esse o caso, por exemplo, podemos torná-lo local. E você pode ver o que acontece é que agora isso tem um sublinhado vermelho, significado e erro. Você pode ver apenas o z global, porque normalmente as variáveis são variáveis globais. Mas, nesse caso, estamos dizendo explicitamente que essa é uma variável local e só pode ser acessada dentro desse contexto específico. O contexto é a declaração if. Portanto, se terminar a primeira camada n, o final dessa instrução if basicamente também excluirá aspas sem aspas, essa variável local. No geral, é normal basicamente tornar tudo local, exceto se houver momentos em que, oh, você sabe o que, na verdade, isso não deveria ser local. Em teoria, o que você deve fazer é sempre que criar uma variável, sempre começar com um local. E isso é, e então você vai ficar bem, e então você vai ficar bem. Porque há muito poucos casos em que esse não é o caso. E você pode ver se não está certo, se você quiser continuar trabalhando com isso, então está tudo bem, então você pode deixar isso de fora. Mas geralmente você quer torná-los locais e então você vai ficar bem. Outra razão pela qual você deseja fazer isso é porque eles têm um pouco mais de desempenho. Agora, para ser justo com máquinas modernas, isso provavelmente não fará muita diferença aqui, mas apenas no caso de ser muito importante. E se você vê o local nos scripts de outras pessoas , saiba que geralmente você deseja usá-los para todas as suas variáveis, exceto em algumas circunstâncias em que as globais são necessárias, então você pode mantê-lo fora. Normalmente, quando eu instancio uma variável com local na frente dela, certo? Então, eu apenas me certifiquei de que o príncipe aqui fosse comentado por causa dessa impressão, é claro, que gera um erro quando temos uma variável local. Mas, no geral, para resumir aqui, mais uma vez, as variáveis locais, elas se tornam um pouco mais rápidas e restringem o escopo em que uma determinada variável é acessível. Não criar uma versão global torna um pouco mais restrito e fácil para as pessoas usarem seus scripts. E também faz com que o jogo funcione um pouco mais rápido. Podem ser pequenas mudanças aqui, mas geralmente você deseja usar o local sempre que possível. Isso vai ser o suficiente para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo . Nos vemos na próxima palestra. Então, sim. 10. (Lua) Operações de corda: Tudo bem, bem-vindo de volta ao curso Roblox. E nesta palestra, vamos dar uma olhada nas operações de cadeia de caracteres, é claro que, em primeiro lugar, nos servidores de scripts do servidor, vamos criar um novo script aqui e renomeá-lo para 07 e operações de cadeia de caracteres de caracteres. E, claro, mais uma vez, faremos uma operação de 07 cordas, Ahmed aqui, e então vamos começar. Assim, podemos criar uma nova variável. Vamos chamar isso de teste e vamos chamá-lo de algo como olá, eu estou dizendo olá, e isso é uma string. E já vimos isso anteriormente. Podemos, por exemplo imprimir isso com a função printf fazendo testes aqui. E isso, é claro, produzirá o valor da variável de teste nesse caso. Para isso, precisamos da saída aqui e também de nos certificar de que nos antigos também comentamos as funções de impressão nos scripts antigos. E se tivermos a janela de saída aberta e a impressão aqui , vamos jogar e poderemos ver olá lá. Estou dizendo olá, bem, isso é muito bom. Agora, por que estou escrevendo algo tão estranho lá? Bem, porque vamos ver algo interessante em um momento. Mas a primeira coisa que podemos fazer com uma corda é descobrir o comprimento da corda. Porque talvez às vezes queiramos fazer isso. Assim, podemos descobrir o comprimento de uma corda fazendo o seguinte. O que podemos fazer é dizer teste de hashtag, e isso produzirá o comprimento dessa string específica. Então, só vai contar quantos caracteres existem, incluindo espaços. Então, antes de emitirmos isso, vamos contar 1, 234-567-8910, 1112, 1314, 1516 1718 1920 201-20-2203, 2420, 5206, 2728, 2930. Em teoria, essa variável de teste, essa sequência aqui, deveria ter três caracteres. Portanto, nossa impressão aqui deve ter o comprimento de uma corda, 30. Vamos jogar e ver se isso é realmente TI. E o comprimento de uma corda é 30. Bom. Isso já é muito legal, mas que outras coisas podemos fazer? Bem, há uma série de coisas diferentes. Então, digamos que criamos uma nova variável. O que vamos fazer é digitar uma string e você pode ver que ela realmente começa a sugerir isso para nós, e também marca isso como azul. Portanto, é uma palavra-chave nesse caso, e podemos colocar um ponto depois dela. E então você pode ver que temos funções diferentes que podemos chamar. E eles basicamente representam uma certa coisa que eles fazem com certas coisas. Então, por exemplo, aqui retorna o comprimento da string. Então, em vez de fazer a hashtag, você também pode fazer a string Lynn Wright e depois colocar a string lá. Muito importante. Então, podemos fazer isso. E, nesse caso, o novo teste será , na verdade, a duração. Vamos chamar esse comprimento por um momento. Vamos copiar isso apenas como um teste. E podemos então calcular o comprimento aqui. E se jogarmos isso, veremos 30,30 porque basicamente está fazendo exatamente a mesma coisa. Mas essa é uma das operações que podemos fazer. Então, geralmente, a maioria das operações para strings, neste caso sempre prossegue com string dot e, em seguida, com uma espécie de função, basicamente. Vamos fazer um novo teste e dar uma olhada. Então, amarre isso. E você pode ver que há um monte de coisas. Então você pode ver que isso concatena n cópias da mesma string. Isso é basicamente se você tiver, se eu colocar a corda lá e colocar três lá, então vai ser olá. Estou dizendo olá. Olá, estou dizendo olá, olá, estou dizendo olá. Então, isso é basicamente para repetir a mesma coisa. Sup é. Isso é uma substring e é semelhante ao que veremos daqui a pouco. A descrição aqui. Pode ser um pouco complicado, mas não se preocupe. O byte geralmente é algo de que realmente não precisamos. Mas o que eu recomendo é que você sempre possa dar uma olhada em cada uma dessas funções e basicamente clicaremos nelas e, em seguida, você poderá ver uma descrição muito boa e até mesmo clicar em Saiba mais para saber mais. O que vamos fazer aqui é fazer g sub, g sub. Isso parece muito complicado, mas na verdade não é. Então, vamos clicar duas vezes sobre isso. Ele formatará tudo isso corretamente e vamos colocar a vírgula na string de teste. E então isso é um padrão. Queremos ver esse padrão. Então, por exemplo, olá. E queremos substituí-lo por algo. E neste caso, vamos apenas substituí-lo por uma string normal. E essa sequência vai ser apenas “Howdy”. Então, o que você espera que aconteça aqui se agora produzirmos um novo teste, certo? Então, se fôssemos imprimir um novo teste, certo? Então, essa nova variável, que vai ter G sub, espero que o que ela faça seja pegar a variável de teste aqui. E vai procurar a palavra olá, certo? E ele retornará uma cópia na qual toda vez que o Hello aparecer, ele a substituirá por Howdy. Então, se fôssemos imprimir um novo teste, bem, espero que o que descobriremos seja que ele diga: como você está aí? Estou dizendo “Olá”? Vamos jogar e ver se isso é realmente o que acontece. E isso é realmente o que acontece. Como você está aí? Estou dizendo “olá”? Agora, o que é extremamente importante se eu também imprimir o teste original aqui, certo, porque colocamos isso na função e substituímos o olá por um Olá, você descobrirá que o teste não mudou. Então você pode ver que o teste está completamente inalterado. E isso também é o que diz. Se eu parar aqui, também é o que eu disse. Se entrarmos aqui, ele retornará uma cópia da string que foi passada. Portanto, ele não modifica a string que passamos. É muito importante lembrar disso. Outra coisa que posso mostrar é, por exemplo, encontrar algo. Então, isso vai ser string dot find. Então, esse é outro método que realmente deu uma olhada no que diz. Então, procura a primeira correspondência do padrão e, em seguida, retorna os índices. Ok? Então, o que isso significa? Bem, vamos fazer um teste, por exemplo , aqui. Não importa qual deles colocamos. E então eu posso dizer lá, então vamos dar uma olhada lá. E então também podemos imprimir isso. Então, onde vamos fazer isso aqui e, em seguida, obter a descoberta. E devemos tirar um número disso para que você possa ver onde está sete, ok, então por que está em sete? Bem, se contarmos mais uma vez, certo, então eu estou contando os caracteres à minha direita, então será 1234567. Então esse é realmente o sétimo caractere, ou é o caractere com índices ou índice de sete. Essa é a ideia geral. E então, financiar coisas que você pode usar, se você às vezes, é interessante e isso é basicamente gritar caixa e depois sussurrar caso. Então, a ideia é aquela corda na parte superior, e se colocarmos algo lá dentro, podemos simplesmente copiar isso. Então, basta selecionar Controle C, Controle V para colá-lo. E isso é então sussurrar e isso é mais baixo. O que você descobrirá é que a parte superior, que vai ver, retorna uma string com todos os caracteres minúsculos mudados para maiúsculas, enquanto a parte inferior aqui retorna uma cópia com todas as letras maiúsculas para minúsculas. Então, se fizermos isso, você pode ver gritando olá lá, eu estou dizendo olá e então toda primavera é assim. Então, esses também são muito legais. Agora, essas operações, incluindo algumas das outras funções para sequências de caracteres, podem ser incrivelmente úteis se você tiver algum tipo de texto que precise modificar com base talvez na localização do player ou se precisar imprimir algo em algum lugar. Então, isso pode ser usado basicamente para muitas coisas. É por isso que pode ser muito importante. E, claro, como sempre, eu recomendo brincar um pouco com isso. Obviamente, existem mais algumas funções de string que você pode usar. Mas, para concluir, você pode obter o comprimento de uma string usando hashtag em vez da variável string ou também pode usar as funções de string de string dot e, em seguida, qualquer que seja a função, neste caso Len. Também vimos como você pode substituir coisas em cadeias de caracteres e sempre lembramos que isso retorna uma cópia da string original que nunca é alterada. Podemos até encontrar coisas e sequências de caracteres e, no final, também vimos a alteração de caracteres em minúsculas e maiúsculas. Bem, espero que você tenha achado isso útil e aprenda algo novo e nos vemos na próxima palestra. Então, sim. 11. (Lua) Loops em Lua: Bem-vindo de volta à introdução do banheiro aqui para ver os núcleos de obstáculos. E então, nesta palestra, vamos dar uma olhada em loops. Agora, o que são loops? Bem, eles são muito interessantes. Em primeiro lugar, é claro, um novo script aqui, 08 traços e um bom comentário no topo aqui também. E a questão é: o que são loops? Bem, bem, e se eu te desse a tarefa de imprimir cada número de 1 a 100? Você poderia dizer, bem, tudo bem, vamos começar do zero. Vamos fazer um e depois copiaremos isso. Eu vou dizer 23 e 4,5, e em algum momento você está pronto. Agora eu vou dizer, bem, na verdade, o que eu gostaria que você fizesse é que todo número par não deveria ser impresso. Eu só quero os números ímpares, 1 a 100 e você vai dizer, Uau, isso é meio chato. Então você vai comentar cada número par ou simplesmente deletar cada número par, então eu fico tipo, Oh, desculpe, eu li isso errado. Na verdade, eu queria o contrário. Na verdade, eu não queria imprimir os números ímpares. Na verdade, eu não queria imprimir os números ímpares e você fica tipo, Meu Deus, eu simplesmente mudei tudo. E nesse momento você vai ficar muito irritado. Claro, essa não é a maneira de fazer isso. Há uma maneira muito mais fácil de fazer isso. Ou seja, loops, basicamente loops em um termo muito geral, ou certos trechos de código ou certos trechos de script que se repetirão x vezes, quantas vezes você basicamente quiser. Então, por exemplo, podemos fazer um for-loop. Você pode ver que isso já sugere que você pode criar um loop for e isso já está sendo destacado como uma palavra-chave. E a maneira como isso funciona é eu vou escrever isso e vou explicar. Então, podemos dizer que eu é igual a um e eu vou dizer dez, e eu vou dizer vírgula novamente e depois um e depois fazer. E assim que eu pressiono a tecla Enter aqui, você pode ver que a extremidade degenera e tudo dentro desse for-loop, semelhante ao que vimos se declarações, certo? Tudo em vez disso para loop será feito neste caso dez vezes. Agora, como é isso? Como isso funciona? O que essa loucura significa? Bem, isso significa o seguinte. Isso significa que o ciclo, é claro, precisamos começar a contar, porque precisamos saber com que frequência estamos passando. O que quer que coloquemos aqui, podemos simplesmente imprimi-lo neste caso, certo? Então, vamos apenas imprimir o número que estamos contando. E a questão é, ok, começamos um, começaremos do um, quero dizer com isso, certo? Então, estamos começando com um, ok, isso deve ser bastante autoexplicativo. Comecei um. Agora vamos terminar às dez. Isso é o que esse número significa, e então é extremamente potente. Esse número significa que estamos aumentando a contagem em um toda vez que terminamos o ciclo. Também poderíamos fazer três. Então, estamos aumentando a contagem em três, dois, seis ou nove ou honrados 26, se quisermos, podemos fazer muitas coisas com isso. Mas, por enquanto, estamos apenas passando por isso. E toda vez que examinamos essa impressão, estamos aumentando esse I em um. E assim que chegar a dez, terminamos com isso. Bem, vamos jogar e ver o que acontece. E você poderá ver se expandimos um pouco a saída. 1 234-567-8910, exatamente o que esperávamos. Mas estamos aumentando esse I um toda vez que terminamos um loop. Então, estamos começando por aqui. Nós pensamos: “Ok, eu sou um agora”. O resto não nos preocupa no momento porque eu não tenho dez anos ou é menor que dez. Então, pensamos que estamos totalmente bem. E então estamos imprimindo I, que é de fato um. Estamos chegando ao fim. Então, vamos voltar ao for-loop. Nós pensamos, ok, agora eu aumentei em um, agora eu sou dois, e assim por diante e assim por diante até chegarmos a dez. E então o loop é como, Oh, olha isso. Agora tenho dez anos. Então, terminamos. E isso é o que chamamos de for-loop neste caso. Muito interessante, de fato. Agora também podemos ter um tipo diferente de loop. Deixe-me parar o jogo por um momento. E podemos ter um tipo diferente de gripe, e isso é um ciclo longo. Então, por exemplo, podemos ter uma variável local x aqui, que é três. E então podemos dizer enquanto, e podemos dizer que enquanto x é menor ou igual a dez, então faremos algo que ele fará com que em série você obtenha uma expressão booleana explícita que tem que ser verdadeira. E embora isso seja verdade, vamos fazer isso agora, enquanto os loops são notoriamente propensos à seguinte coisa, que é um loop infinito. O loop infinito acontece se, por qualquer motivo, você nunca conseguir falsificar isso. Então, se x é sempre menor ou igual a dez, então esse loop inteiro vai continuar, vai durar para sempre. Agora eu acredito que, se bem me lembro, Lula e, além disso, Roblox Studio têm uma espécie de proteção contra falhas embutida para isso, para que todo o Roblox Studio não falhe se isso acontecer. Mas eu ainda recomendo que você não experimente isso porque é meio chato. Então, dentro daqui, podemos, por exemplo , dizer, ok, vamos aumentar x um toda vez e então devemos ficar totalmente bem, porque, é claro, se aumentarmos isso em um, se aumentarmos isso em um, em algum ponto será maior que x, certo? Então, se pudermos dizer imprimir e isso também é imprimir x, y nada seria o caso. Mas vamos fazer isso antes de aumentá-lo. Então, vamos imprimir três até dez. E então também devemos estar fora do circuito. Então, vamos fazer outra impressão aqui fora do circuito. E vamos jogar isso e ver o que acontece aqui. E, claro, 3-10, onde fora do circuito, absolutamente não se preocupe. Também podemos fazer isso, e isso é apenas um exemplo aqui. Dentro dela. Se estivermos dentro de um loop while ou de um loop for, por falar nisso. Certo? Digamos que queiramos dizer: “Ok, você sabe o que? Quando x atinge sete, então, na verdade, queremos fazer o seguinte e vamos quebrar. Break é outra palavra-chave que sairá completamente imediatamente do loop como se tivéssemos chegado ao final do loop. E isso não significa que chegaremos a esse fim. Somos como se estivéssemos do lado de fora do passarinho pulando. Também podemos usar continue. E isso funcionaria como se tivéssemos chegado ao fim aqui. Então, isso continuará o ciclo. Isso quebrará o ciclo. Basicamente, estaremos fora do circuito nesse ponto. Essa é a ideia geral. Então, se usarmos break aqui, teremos de três a sete saídas. Você pode, ou neste caso seis, na verdade porque estamos produzindo x antes de aumentá-lo. Então x é seis, fica, aumenta para sete. X7, estamos saindo e é por isso que temos 345,6. E então estamos fora do circuito. Se continuássemos aqui, o que aconteceria é que, na verdade nada seria diferente do que tínhamos antes, porque nada depois disso se a declaração fosse relevante. No entanto, se colocássemos isso logo no início aqui, agora seria interessante porque agora são sete não seriam produzidos. Então, se vemos isso agora, você pode ver, de repente, o que aconteceria é que nos depararíamos com um loop infinito. Agora isso é, claro, aplicativo. Então você pode ver que esgotamos o tempo de execução permitido porque o que acontece aqui é que x é sete e então pensamos, ok, vamos continuar e depois é como um exercício. Vamos continuar, vamos continuar, vamos continuar, vamos continuar, vamos continuar. E vai fazer isso até que, nesse caso, o tempo de execução permitido seja atingido. Isso é 10 s, se conseguirmos ver isso corretamente, então a diferença aqui no tempo é 10 s. Então, em teoria, isso pode acontecer. Então é por isso que você deve ter cuidado com isso. Então, poderíamos, por exemplo, fazer algo assim. Então, a impressão acontece depois e o aumento aqui acontece antes. Então, se tivéssemos que fazer isso, então, de repente, saltamos de 6 a 8 e, nesse caso, saltamos mais de sete. Então essa é outra ideia interessante. E também temos um loop de repetição, que é muito parecido com o loop while. O que estamos fazendo basicamente é o contrário. Então, basicamente, estamos dizendo: Ei, queremos repetir o código a seguir até que algo seja verdade. Isso é basicamente equivalente ao loop while, mas é um pouco diferente. E isso está escrito assim. Isso é praticamente tudo sobre loops. Ou podem ser interessantes. Isso deveria estar praticamente certo, certo? Em resumo, os loops são maneira incrivelmente fácil e eficiente de repetir o código que você deseja repetir x a quantidade de vezes que há para loops, enquanto os loops e repita até fazer loops. E essas são, eu acho, as três versões principais. Também há algumas coisas interessantes para, para os loops posteriores, podermos ver todos os quatro em cada loop. Mas, no geral, esses são basicamente os três grandes. E eles podem ser muito, muito interessantes. Portanto, eu recomendo brincar um pouco com isso. Se você quer um pequeno desafio, isso é apenas um desafio para você. O que você pode fazer é aumentar isso para 100 e imprimir os números 1 a 100 e, em seguida, fazer exatamente o que eu disse e basicamente dizer: Ei, só queremos imprimir números se eles forem divisíveis por dois. Então, se houver, se houver ou se não houver. Portanto, isso deve ser bastante simples, com a palestra if and else e a aula de loops, você deve ser capaz de fazer isso. Eu recomendo fortemente que você experimente isso. É um exercício muito divertido. Independentemente disso, espero que você tenha achado isso útil e aprenda algo novo. Nos vemos na próxima palestra. Então, sim. 12. (Lua) Funções em Lua: Tudo bem, bem-vindo de volta ao banheiro ou à introdução aqui para o curso de bloqueios de estradas. E nesta palestra, vamos dar uma olhada nas funções. Então, eu defini essa palavra algumas vezes. Vamos criar um novo script aqui e renomeá-lo para 09 funções de traço e, claro, também 09 funções aqui. Agora a pergunta é: o que são funções? Bem, como uma visão geral de alto, alto e alto nível, você pode basicamente colocar várias instruções em vez de uma função e, em seguida, sempre executar essa função em vez de fazer todas essas coisas diferentes. Como um exemplo de alto nível, podemos escrever uma função. Você pode ver que isso é uma palavra-chave e, em seguida, esse é o nome da função. Vamos chamar isso de culinária, certo? E então podemos até colocar algo aqui para escrevermos o nome dessa função e depois termos parênteses. Assim que você colocar o parêntese aberto, o de fechamento deve ser gerado automaticamente. E aqui você pode então apresentar certos argumentos. Esses são chamados de parâmetros, são parâmetros e podem ser passados para a função, alterando assim a saída. Então, em nosso exemplo de codificação aqui, vamos simplesmente não colocar nada aqui e na verdade , ir até o final , pressionar Enter e, no final, geraremos novamente automaticamente. Isso é a mesma coisa que vimos com os loops e também com as instruções if e else. E aqui dentro, se estivermos cozinhando alguma coisa, agora posso colocar coisas diferentes. Agora, nesse caso, não vai funcionar. Só vou fazer comentários para que você tenha a ideia de uma função. O que é uma função, certo? Então, toda vez que quisermos cozinhar, talvez realmente queiramos cozinhar algo específico. Então, digamos que vamos chamar esse cozinheiro de jantar por uma questão de discussão, certo? E toda vez que eu quero preparar o jantar, há algumas coisas que eu tenho que fazer, certo? Então eu tenho que pegar talheres, talvez eu tenha que pré-aquecer o forno. Eu tenho que fazer um corte de vegetais, coisas assim. Então, há certas coisas que eu sempre tenho fazer se eu quiser fazer essa função específica, certo? Essa coisa específica. E você pode listar todos eles dentro de uma função. E então, em vez de escrever cada uma individualmente, se fizéssemos isso várias vezes, sempre teríamos que ler todas as instruções. E isso é loucura. Basicamente, uma função é um contêiner no qual você pode colocar várias linhas diferentes aqui neste caso, e elas serão executadas. Agora, este é um exemplo de alto nível para você entender a ideia. Esperançosamente. Agora, vamos dar uma olhada em um exemplo real. Portanto, um exemplo real poderia ser uma função de soma. Estamos dentro do parêntese. Na verdade, colocamos o número um e o número dois. E agora a loucura é que, se chamássemos essa função num, na verdade queremos que algo seja retornado. Então, podemos dizer retorno. E você pode ver que isso também é uma palavra-chave e queremos retornar num mais num dois. E isso agora é o que está sendo devolvido. Agora, é claro, neste caso, já temos uma espécie de função usando apenas o operador plus. Porém, isso é mais uma vez, apenas um exemplo para você começar a entender as funções e por que elas podem ser extremamente úteis. Porque agora o que podemos fazer é imprimir e dizer, bem, a função da soma, certo? E podemos simplesmente imprimir alguns e dizer 3,10. E isso é, como você pode ver, isso é, estamos chamando a função soma. Você pode até ver que ele se destaca aqui. Se eu clicar aqui e dentro daqui, podemos passar um número e outro número , e esses são resumidos aqui. Então, esses são parâmetros que estamos transmitindo parâmetros, você sempre precisa ter a quantidade correta de parâmetros. Então, se fizermos isso, se eu fizesse isso, embora não estejamos tendo nenhum problema aqui, se eu realmente executasse isso, teríamos um problema. Mas, por uma questão de argumento, vamos jogar isso. E veremos que, se eu examinar a saída, tentamos adicionar um número de nil, porque se eu não passar algo certo , o que é passado é nulo. Agora já ouvimos isso antes, certo? Nulo, era apenas a ausência de qualquer valor em uma determinada variável. Então, temos que passar alguma coisa. E se passássemos os dois números aqui, poderemos descobrir que a função soma gera 13, que é exatamente o que esperaríamos aqui. É claro que, quando você está realmente criando um script, as funções podem ficar muito mais complicadas do que isso, mas isso é apenas uma introdução muito pequena às funções. Nós os veremos quando estivermos realmente fazendo alguma programação com o próprio Roblox. Para resumir aqui, funções que você pode usar basicamente para agrupar várias coisas diferentes e executá-las uma após a outra. Isso também pode incluir outras funções. Você também pode retornar a certas coisas e funções. Por exemplo, temos uma função de soma aqui em que passamos dois parâmetros. E esses serão devolvidos depois de fazermos algo com eles. Essa é uma visão geral das funções. Se você não tiver certeza de como usá-los, não se preocupe, o mais importante é que você tenha sido apresentado a esse tópico e também poderemos ver mais sobre funções em palestras posteriores. Caso contrário, espero que você tenha achado isso útil e tenha aprendido algo novo. Te vejo na próxima palestra. Então, sim. 13. (Lua) Mesas em Lua: Tudo bem, bem-vindo de volta à introdução do banheiro aqui para ver as pontuações dos robôs, além desta palestra, vamos dar uma olhada nas tabelas. Agora, as mesas são uma coisa muito interessante e podem ser bem complicadas, mas não se preocupe, ficaremos bem. Então, vamos fazer tabelas aqui e tabelas de hash, e a mesma coisa aqui. E isso é que mesas são mesas. A ideia geral das tabelas é basicamente que você tem uma espécie de lista de certas coisas. Então, é claro, uma tabela é um pouco diferente de uma lista, mas você pode, por enquanto, pensar nela como uma lista e para que tenhamos algo para testar. Vou criar uma variável local chamada dias. E hoje em dia, essa será uma lista de todos os dias de segunda a sexta-feira. Em primeiro lugar, o que vamos fazer é igual a e depois um colchete, o colchete de fechamento é gerado automaticamente novamente. E isso vai ser uma tabela de strings neste caso. Então, essa será a vírgula de segunda-feira, e depois teremos a terça. E você consegue adivinhar exatamente o que vem a seguir? Dia das Testemunhas, que é como está escrito quinta-feira e , por último, mas não menos importante, também temos sexta-feira. Aí está. Então, isso é basicamente, bem, esses são os dias e agora podemos fazer o seguinte. Podemos imprimir, certo? E o que podemos imprimir é que podemos imprimir por dia. E o dia em que vamos imprimir é que vamos imprimir bem, tal querermos imprimir, digamos na quarta-feira. Como fazemos isso? Bem, vamos pensar nesse dia para que possamos dedicar dias e você possa ver que ele até mesmo sugere isso para nós. E agora, como podemos realmente sair de uma de nossas mortes? Bem, temos esse colchete aqui e uma visão que podemos colocar em um número. E esse número representa o índice de um lado da lista, certo? Então esse será o elemento do índice um e X2 e X3 e X4 e X5. Mas pessoal, quarta-feira, vamos fazer três e vamos jogar e ver se saímos na quarta-feira e, de fato, um dia, quarta-feira, isso já é incrível. Agora, o índice aqui começa em um em vez de zero. Portanto, isso só é importante se você já está programando e se já programou antes, geralmente quando você faz outras coisas em outras linguagens e outras linguagens de programação, geralmente os índices começam em zero. Esse não é o caso em Lua. Em Lua, todo índice começa com um. Isso é muito importante. Agora, se você não sabe o que isso significa, não se preocupe. Isso é bom. Só estou dizendo que, para pessoas que já programaram antes, isso é uma coisa muito, muito importante a se ter em mente. Agora, é claro, temos uma saída, mas e se quisermos, produziremos tudo. Então, isso vai parecer um pouco mais complicado, mas temos um for-loop que podemos usar que basicamente produzirá, bem, tudo dentro dessa tabela em particular. Agora, há duas coisas diferentes que podemos fazer. Podemos usar um for-loop normal exatamente onde estamos, tipo, Ei, eu quero começar com um e quero parar em. Este é um dia de hashtag muito importante. Portanto, esse seria o comprimento dessa tabela em particular. Por exemplo, quantos elementos estão nessa tabela? Eu quero aumentar em um. Para isso eu quero fazer e depois imprimir dias. Mais uma vez, colchetes. Vi que isso, em teoria, deveria sair de segunda, terça, quarta, quinta e sexta-feira. Isso deve ser totalmente bom. Vamos ver se isso funciona. E, claro, segunda, terça, quarta, quinta e sexta-feira. Absolutamente, não se preocupe. E funciona totalmente bem. Isso é muito legal. Há uma segunda maneira de fazer isso. Isso funciona totalmente, mas há outra maneira de fazer isso. Agora esse, um pouco mais complicado. Porém, a razão pela qual a outra pode ser interessante é porque, no momento , as tabelas estão mapeadas para o índice. Então, basicamente, isso é vermelho, isso é um, isso é dois, isso é três, isso é quatro, isso é cinco. Em teoria, eu poderia fazer o que eu quisesse. Então eu poderia fazer, e eu vou, vou fazer coisas malucas. Digamos que um igual a isso é igual a isso, C é igual a isso, d é igual a isso, e então F é igual a isso. F é E. Na verdade, aí está. Então você pode ver que não há, não, não há erros aqui porque agora eles estão mapeados para chaves diferentes, certo? Agora, a loucura é que se eu ficasse com isso e estivesse jogando isso, o que você descobrirá é que um dia é nulo. E também não estamos produzindo nada porque não há, tudo isso é nulo. Isso, isso não funciona. Mas isso que precisamos fazer é obter o par de valores-chave. Porque basicamente transformamos essa tabela de uma lista normal na qual você pode acessar os elementos por meio do índice em uma espécie de dicionário ou mapa que mapeia um valor para outro valor. Agora podemos fazer um for-loop com uma chave e um valor, e isso será em pares da tabela de dias. Então vamos fazer alguma coisa. Mas isso parece muito louco. A ideia geral, no entanto, é essa, essa é a novidade. O que estamos pensando é que estamos recebendo uma chave que é sempre a primeira coisa aqui, certo? Então a é igual, essa é a chave e o valor é o que está escrito dentro dela, certo? Então, antes a chave era apenas o índice 1.234,5. E agora a chave é a, B, C, D e E. Essa é a única coisa que mudou. E se fizéssemos o seguinte, se agora fizéssemos o dia ou, digamos, a chave. E então vamos imprimir a chave. E eu vou fazer o valor e depois imprimir o valor. O que você descobrirá é que isso gerará valor chave na segunda-feira e assim por diante. Mas vamos jogar isso. Você verá a chave a na segunda-feira, chave C é quarta-feira, curiosamente, e isso também é muito importante. Não está mais em ordem. Isso não é loucura? Bem, esse é realmente o caso. Então, vamos jogar isso de novo. Como vemos, tivemos segunda, quarta, terça, sexta e quinta-feira. Vamos fazer isso de novo e receberemos o mesmo pedido novamente. Essa é outra lição extremamente importante porque se estivermos usando esses pares aqui, a ordem em que os salvamos não é garantida. Isso é extremamente importante e deve ser basicamente lembrado. No entanto, ainda é uma coisa muito, muito interessante. Mas tenha isso em mente, é muito legal. E se eu excluísse o valor das chaves aqui novamente, certo? E deveríamos passar por isso de novo. Qual será a chave? Bem, é exatamente 12345. Agora, o pedido está correto porque eu não me cito sobre isso. Não tenho 100% de certeza, mas tenho certeza de que as chaves são classificáveis ou ordenáveis, certo? Então, 1234, há uma ordem definitiva para essas coisas, então a ordem sempre será a forma como você basicamente as salvará. E isso é muito legal. De fato. Mas isso não é tudo, porque o que está faltando nos dias de hoje? Bem, é claro, faltam sábado e domingo. Então, o que podemos fazer é realmente inserir certos valores nessa tabela. Podemos fazer o ponto da tabela e você pode ver que há um monte de coisas que podemos fazer, criar, podemos encontrar certas coisas. Podemos até ver os retornos da chave numérica máxima. Tem coisas malucas. Podemos mover coisas, podemos classificá-las, podemos cloná-las. Mas, para nossos propósitos, o que eu realmente quero é inserir algo. E o que eu quero inserir é que eu quero inserir em dias. Então, esta é a tabela na qual queremos inserir. Então, precisamos colocar o específico, neste caso, o que eu realmente quero fazer é colocar isso em um lugar específico. Então, vou colocar isso na posição número seis. E então eu quero colocar o valor. E o valor aqui é sábado. E o que podemos fazer é simplesmente copiar isso. E então, na posição sete, neste caso, eu quero colocar no domingo. E se fôssemos produzir isso agora, mais uma vez, posso pegar o que eu quiser. Na verdade, vamos pegar este e depois excluí-lo daqui. Tudo bem, então não incluímos a saída aqui. Vamos jogar, e você descobrirá que agora temos uma chave seis que retornará o valor de sábado e uma chave sete que retornará o valor de domingo. Muito interessante, de fato. E então uma última coisa aqui. Agora eu sei que isso foi bastante e que são muitas coisas novas ao mesmo tempo. Não se preocupe nem um pouco. Nós seremos capazes de, você sabe, você será capaz de navegar por isso com facilidade um pouco mais tarde. No entanto, o que eu sempre recomendo, como sempre, é experimentar um monte de coisas com isso. Experimente. Tendo valores diferentes aqui ao invés de cadeias de caracteres, você pode colocar números aqui. E, a propósito, isso também é uma coisa muito interessante. Você pode até mesmo misturar e combinar diferentes valores de tipos de variáveis. Você pode ter números aqui e assim por diante. O que na verdade é muito interessante porque isso significa que você pode ter quase uma aula. Agora, isso é um pouco mais avançado e, mais uma vez, algo para as pessoas que já programaram em outro idioma. Então você pode ter, por exemplo podemos ter uma pessoa que tenha um primeiro nome, por exemplo, john. E pode ter um sobrenome, que talvez seja Smith. E então você pode até ter um h, certo? O que talvez seja um 32. E agora o que eu posso fazer é imprimir pessoa, pessoa. E então queremos colocar FirstName, esse y. E então queremos ter a pessoa. Também podemos fazer pontos pessoais, e isso é loucura. Podemos até mesmo fazer pontos pessoais. E você pode ver todas as três coisas diferentes que colocamos nessa tabela em particular. Podemos produzir assim. Então, podemos fazer o sobrenome e depois dizer, é que podemos dizer pessoa. Nova era, anos. Deixe-me diminuir um pouco o zoom. Aí está. Então, pessoa e o quê? Ele exibirá o primeiro nome da pessoa. É assim que podemos nos escrever. Também podemos acessar isso por meio disso. E nós só temos o é e depois a idade, anos de idade. Vamos produzir esse LLS, jogar isso e ver se isso funciona. E, claro, seu filho John Smith tem 32 anos. Absolutamente incrível, incrível. Isso é muito legal e claro, podemos ir um pouco mais longe. E agora isso é só, eu só quero mencionar isso. Podemos até mesmo fazer uma mesa de mesas. Isso significa que, em teoria, podemos ter várias pessoas e depois ter uma lista dessas pessoas. Não vamos fazer isso aqui porque isso é uma loucura absoluta. Isso está muito além do escopo da introdução de Lula aqui. Eu queria te apresentar as mesas. Eles podem ser bem complicados. Isso pode ser um pouco complicado. Isso pode ser um pouco complicado. Mas espero ter sido capaz de levá-lo a entender o que está acontecendo aqui. Mais uma vez, eu recomendo usar o script aqui, que obviamente está sempre disponível para download. E você pode pegar isso e tentar. Tente fazer coisas diferentes com ele, inserindo coisas em locais diferentes, inserindo coisas espalhadas ao redor da pessoa que está aqui. Eu recomendo fortemente fazer isso e tentar ter uma ideia de como isso funciona. Mas, mais uma vez, para resumir as tabelas gerais, ou elas podem ser listas de coisas que têm certas chaves e certos valores. Se você não especificar as chaves , as chaves serão apenas uma, qualquer que seja a quantidade de elementos dentro dessa tabela ou lista, nesse caso. E você pode percorrê-los com dois for-loops diferentes, dois estilos diferentes de for-loops. E isso é muito, muito legal, de fato. Podemos até usar as tabelas para fazer algo como uma aula. Agora, neste caso, é uma pessoa aqui que tem um primeiro sobrenome e uma idade. E podemos produzir isso de duas maneiras diferentes. Bem, isso vai ser o fim desta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo . Nos vemos na próxima palestra. Então, sim. 14. (Lua) A Biblioteca de matemática em Lua: Tudo bem, bem-vindo de volta à introdução do banheiro aqui para os núcleos de obstáculos. E nesta palestra vamos falar sobre a biblioteca de matemática, certo? Então, vamos mais uma vez, é claro, criar nosso script aqui, 11. Isso vai ser um liberal em matemática. Aí está. E isso vai ser 11 de matemática, tudo bem. E isso vai ser apenas uma introdução muito, muito pequena aqui. Mas pode ser útil. Então, é claro que já fizemos algumas coisas matemáticas, certo? Adicionamos, subtraímos, multiplicamos, dividimos e até obtivemos o restante. Coisas muito loucas que já fizemos. Mas com a biblioteca de matemática, podemos fazer coisas ainda mais loucas. Então, se fôssemos imprimir, por exemplo , menos cinco, mas pensássemos, sabe o que? Na verdade, eu realmente não me importo se é menos cinco ou mais cinco. Na verdade, eu só quero o número absoluto para isso. Bem, podemos simplesmente imprimir um ponto matemático. E você pode ver aqui todas as coisas malucas que basicamente podemos obter com essa biblioteca matemática. Podemos obter um número aleatório. Vamos ver isso em um momento. Podemos até ficar loucos por Pi. Podemos fazer o expoente, obtemos cosseno, podemos retornar um ângulo que você dá em radianos e ele o transforma em graus. Nós obtemos o logaritmo. Há muitas coisas, como você pode ver claramente, que podemos fazer. E isso pode ser extremamente útil para fazer ainda mais coisas matemáticas. Se você diz: Oh, eu não preciso dessa coisa de matemática. Bem, por exemplo, ter coisas como a onda senoidal é realmente muito útil. Porque o que você pode fazer com um sinal é, por exemplo fazer círculos perfeitos para estragar as coisas em círculos. Só estou dizendo que essa é uma das coisas em que isso pode ser extremamente útil. Mas neste caso, na verdade, queremos abdominais, que significa absoluto. Então, estamos obtendo o valor absoluto de menos cinco, que, se jogarmos, é claro que é cinco, porque, bem, esse é o valor absoluto. O valor absoluto não se importa com o sinal. Só se preocupa com, bem, qual é o valor real? Há outras coisas que podemos fazer. Então, por exemplo, podemos fazer uma matemática verde-azulado. Então esse vai ser o teto. Você pode ver que ele retorna o menor número inteiro, maior ou igual a x. O que isso significa? Ok, isso parece muito mais louco do que realmente é. Se colocarmos 10.21, ele simplesmente retornará, bem, ele vai selar. Então, na verdade, isso vai transformar isso em um número inteiro, o que significa que vai ser arredondado para cima para o próximo número inteiro. Se realmente fizermos o outro , que vai ser o chão, isso vai ser arredondado para baixo. Então, podemos realmente colocar isso para cima, arredondar para cima e este arredondar para baixo, duplo. Lembre-se de que isso não arredonda com as coisas normais de arredondamento, certo? Então, também temos uma rodada. Este, neste caso, também se esgota porque, na verdade, parece correto. Ou a regra, certo? 0,5 significa que você arredonda para cima e tudo abaixo de 0,5, você arredonda para baixo. Mas vamos ver, isso deve ser 111010. Uh, veja se esse é realmente o caso. E, claro, 111010. Perfeito. E vamos parar com isso e vamos fazer isso de novo com 0,5 e então deveria ser 111011. E, claro, 111011, exatamente como chegamos lá. Eles são absolutamente perfeitos. É exatamente assim que isso funciona, porque essas são, digamos, as regras normais de arredondamento. Aí está. Então, espero que isso faça sentido. Também podemos obter o mínimo e o máximo. Então, isso também pode ser muito útil na verdade. Então, isso é min, que é basicamente, vai te dar o número mínimo. Você colocou dois números, certo? E ele retorna um número menor dado como r Omega. Então isso deve fazer muito sentido. E então, é claro, podemos ter dois corolários disso, que é o máximo, que retorna o maior número. Você pode realmente, tenho certeza, colocar quantos números quiser. Vamos fazer isso. Por que não 60? Quero dizer, isso não mudaria nada, isso, em teoria, também deveria funcionar. Vamos apenas ver. E, de fato, funciona. O primeiro é um e o segundo é 515. Portanto, isso pode ser muito útil, por exemplo, talvez você queira obter o número mais alto para uma pontuação alta ou algo parecido, as funções Min e Max podem ser muito úteis. Mas também vamos imprimir pi porque chapéu branco não é potência, mas pi. E também podemos usar a matemática da raiz quadrada que SQRT é a raiz quadrada de 25. Então pi, é claro , será 3,141, 5265, algo assim. E então a raiz quadrada de 25 deve ser cinco. Vamos ver, a que distância eu estava com pi? 314-15-9265? Acho que eu estava certo. Acho que eu disse 649. Não tenho certeza, mas isso basicamente é pi. E isso é claro com precisão, isso é amina. De qualquer forma, nunca precisarei dessa precisão em jogos, tenho certeza de que essa é a precisão que você obterá, a circunferência do universo observável em milímetros. Então, tenho certeza de que tudo vai ficar bem. E então, é claro, a raiz quadrada de 25 é cinco. Perfeito O último que sai. Você também pode ter alguma aleatoriedade. Agora, é muito importante que a aleatoriedade do computador seja sempre pseudo-aleatória. Basicamente, isso significa que você o semeia com um determinado valor. E quando você gera números que sempre serão os mesmos, isso é o mesmo. A ideia de, por exemplo quando você pensa na geração mundial do Minecraft , como exemplo, você pode colocá-la em uma semente e, em seguida, ela sempre gera o mesmo mundo. Bem, como isso funciona? Essa é exatamente a semente que você está plantando. E então os valores que você divulga são sempre os mesmos. Então, podemos fazer um aleatório, isso vai te dar um número, número 0-1. E você também pode fazer matemática aleatória de pontos. E podemos realmente colocar coisas lá. Então, podemos colocar 0,10 e esses serão os limites inferior e superior que você pode obter. Então, vamos jogar isso e podemos ver que o primeiro número é 0,6, seja o que for, seja o que for, o que for, o que for, e depois 42. Quero dizer, que número perfeito aqui para obter n. Se pararmos com isso e jogarmos isso de novo, você descobrirá que, oh, são exatamente os mesmos números porque, e isso é exatamente a coisa, porque a semente é a mesma, certo? Então, temos a mesma semente aleatória aqui. Se eu mudar isso, agora teremos números completamente diferentes. Então você pode ver que agora obtemos 0,0, 69,57. Então, quando você coloca na semente, certo, se você colocar 100 também, você deveria, em teoria, obter exatamente os mesmos números que eu obtive. Ou seja, essa é a ideia dessa aleatoriedade ou pseudo-aleatoriedade. Na verdade, isso é muito legal, geralmente se você quiser randomizar isso completamente, o que você gasta é a quantidade de segundos no seu computador ou a quantidade de tiques no seu computador, porque isso geralmente é aleatório o suficiente para uma semente. Para resumir. No geral, as funções matemáticas são, bem, muitas e podem oferecer muitas coisas diferentes. Você pode números absolutos, pode arredondar para cima e para baixo. Você pode obter o minimax e até obter algumas constantes como pi aqui e até números aleatórios, cujos finais de jogos são extremamente úteis. E eles podem simplesmente ajudá-lo muito em várias coisas diferentes. São inimigos matinais em uma determinada área que são um pouco aleatórios ou que dão atributos aleatórios aos inimigos. Todo tipo de coisa. Muito legal mesmo, certo? Mas isso realmente conclui esta palestra e também toda a introdução inferior. Espero que tenha sido uma introdução boa o suficiente para você se familiarizar um pouco com Laura. Se você ainda não está se sentindo muito confiante nisso, tudo bem. Definitivamente, há duas coisas que eu posso recomendar. Primeiro, se há certos tópicos que discutimos sobre os quais você está um pouco instável, tentou assistir à palestra novamente e ver se com todas as coisas diferentes sobre as quais falamos até agora, em retrospectiva, elas agora são um pouco mais fáceis de entender. Número dois, o que eu recomendo fortemente é brincar com eles, com os diferentes tópicos que abordamos. Basta brincar um pouco com as funções matemáticas aqui, brincar com tabelas, brincar com loops e declarações if e else. Você já pode fazer muitas coisas apenas com essas 11 coisas sobre as quais falamos. Mesmo que não pareça muito. Estou te dizendo, essa é a base na qual tudo, cada jogo é basicamente criado com todos esses princípios básicos. Sim, claro, também há muitas outras coisas. Mas esses princípios básicos, se você não pode usá-los , todo o resto é irrelevante porque você precisa saber o básico, os fundamentos. Caso contrário, simplesmente não funciona bem. Com relação a isso, estamos enfrentando obstáculos adequados. Se isso tem sido útil para você até agora, eu realmente agradeceria sua avaliação. Caso contrário, nos vemos na próxima palestra. Então, sim. 15. (Roblox) Roblox Studio explicado: Tudo bem, bem-vindo de volta às pontuações do Roblox. Nesta palestra, vamos dar uma olhada em algumas das interfaces do usuário do Roblox Studio. Agora, isso apenas fornecerá uma visão geral, não incluirá todos os botões e o que tudo faz, porque isso exigiria basicamente um vídeo de duas horas. E não era bem isso que eu tinha em mente. Eu só queria mostrar a vocês cada uma das diferentes janelas aqui e aproximadamente o que elas fazem. Então, ou talvez sem a saída, será aproximadamente o que você verá ao abrir o Roblox Studio pela primeira vez com um jogo personalizado, a primeira coisa que eu realmente quero que você faça é ver e adicionar a saída aqui, porque a saída é uma das coisas mais importantes que usaremos durante todo o curso, porque basicamente nos permite imprima tudo o que quisermos por meio de scripts. E é aqui que isso será exibido. Então vamos nos concentrar nessa grande área aqui, que é uma espécie de visão da câmera. E você pode ver agora que estou no modo de seleção. Também há o modo de movimento, modo de escala e o modo de rotação. Digamos que no modo de seleção. E se eu fosse clicar com o botão direito sobre isso, agora eu posso me mover se eu mover a câmera, mas eu posso ampliar com a rolagem da roda do mouse. E se eu clicar com o botão esquerdo, posso realmente selecionar certas coisas. Então você pode ver agora que há uma borda azul ao redor, o que significa que eu selecionei esse objeto. Essa é a ideia geral. Também posso me movimentar com WASD e com E e entrar na fila, ela sobe e desce. Você pode ver que quando eu movo a câmera no canto superior direito, o cubo aqui também se move, porque este é um espaço tridimensional, ele é representado com um valor x, um valor y, e um valor z disso é apenas um sistema de coordenadas tridimensional. Eu posso clicar nos rostos aqui e então ele vai mudar para aquele rosto. Então eu posso ir para a vista de cima para baixo. E agora eu tenho tudo em vista de cima para baixo. Pode ser útil para certas coisas, mas eu também posso sempre sair dela. Se eu selecionar um determinado objeto, você poderá ver que ele se acende no Explorer à direita, à direita, para que você possa ver que a pequena localização aqui é destacada. E a ideia geral é que eu também posso simplesmente clicar nele e depois ele também é destacado. Então, essa ideia do explorador. O explorador representa tudo o que está dentro do nosso jogo, tanto dentro do mundo do jogo. O mundo do jogo é todo o material do espaço de trabalho, certo? Então, se eu clicasse no sinal positivo aqui, eu poderia adicionar um monte de coisas aqui. Não vamos acrescentar nada agora, mas eu poderia acrescentar uma quantidade insana de coisas. Isso é basicamente tudo o que vemos. E também há outras coisas, certo? Então, há os serviços de iluminação de um jogador, algumas coisas de armazenamento. Algumas coisas também passarão pela maioria dessas coisas durante as palestras. Mas, por enquanto, o espaço de trabalho é realmente a coisa mais importante que temos. E talvez o serviço de script do servidor, onde basicamente carregaremos todos os nossos scripts por enquanto. Então, no canto inferior direito, quando selecionamos algo, podemos ver que temos algumas propriedades. As propriedades representam um determinado objeto, certo? Então, nesse caso, esse local específico de desova tem essas propriedades específicas, assim como você é humano, certo? E você tem um certo nome que seria uma propriedade, apenas como uma ideia geral. E você pode ver que diferentes tipos de objetos têm diferentes tipos de propriedades. Portanto, nesse caso, o local de desova é do tipo local de desova e tem alguns dados. Então você pode ver que é o que é a caneta laranja ou esse nome tem um tamanho? Então, isso faz parte da transformação e tem um pivô, tem um certo comportamento, tem colisões, tem algumas propriedades de porta e assim por diante. Ele ainda tem um campo de força específico para os locais de desova. O mesmo acontece com as equipes, tenho certeza. Então, há um monte de coisas e você pode até adicionar mais atributos aqui. Muito, muito interessante. De fato, propriedades também são algo que veremos em uma palestra futura. E depois, para dar uma pequena visão geral. Então, se selecionarmos isso e agora podemos mudar para o modo de movimento, e agora podemos movê-lo. Então você pode ver que agora eu posso mover isso. Eu também posso escalá-lo. Eu posso ver a balança que, basicamente, se segurarmos a tecla Shift , a escalaremos uniformemente. Se mantivermos o controle e o escalarmos em um eixo, podemos até girá-lo dessa forma. E se você quiser que isso se encaixe, então você pode fazer isso girando no movimento para cá, encaixar na grade, e agora eu só posso girá-la 45 graus. Eu só posso movê-lo em incrementos de uma estrela. Essa é a ideia geral aqui. A maioria dessas outras coisas também veremos ao longo do curso. A transformação ainda pode ser algo interessante. Então, se selecionarmos o local do spa novamente, você pode ver que essa não é a transformação aqui. Podemos entrar em mais detalhes sobre como fazer certas coisas. Então você pode ver, eu tenho um controle muito mais preciso de tudo, especialmente quando eu dimensiono isso. Você pode ver agora que o tamanho do estudo está realmente representado aqui em números, o que é realmente incrível. Então, eu posso ser muito, muito preciso com as coisas do avatar do momento atual. Nós realmente não precisamos de nada aqui. Então, isso é só para adicionar avatares, neste caso, testar, só para testar certas coisas aqui. A partir daqui podemos jogar, podemos iniciar um servidor local com x quantidade de jogadores. Podemos até mesmo mudar o emulador do player. É muito interessante. A visualização é realmente muito importante porque aqui podemos ativar e desativar certas janelas. E, como você pode ver, na verdade, existem alguns gerenciadores de ativos e temos a caixa de ferramentas, o navegador de objetos, a análise de scripts e a barra de comando. Então, há um monte de coisas aqui, maioria das quais na verdade não precisamos no momento. A maioria das coisas interessantes é que talvez a caixa de ferramentas seja interessante. Então é aqui que você pode carregar certas coisas do Roblox em seu jogo, certo? Então você pode adicionar luzes, você pode até adicionar alguns plug-ins nesse caso, certo? Assim, você pode adicionar plug-ins. Alguns custam, outros Roebuck, outros não. Alguns deles são gratuitos. No entanto, sempre tenha cuidado ao adicionar coisas de outras pessoas que elas possam ter códigos maliciosos em seus scripts maliciosos. Isso existe. Principalmente, isso é para coisas que são gratuitas. Sempre dê uma olhada em quantas avaliações eles têm e também quantas avaliações positivas são metade, certo? Então, algo que seja 91% positivo e tenha mais de 100 avaliações, provavelmente vai ficar bem. Portanto, tenha isso em mente e podemos encerrar isso. Você pode adicionar uma grade que agora é uma força à grade; podemos fazer uma grade de dois tipos ou também uma grade de 16ª nota. Isso só ajuda você a ver o que está acontecendo. renderização em wireframe basicamente desliga todos os sólidos, apenas fornece um wireframe de tudo. Isso pode economizar uma certa quantidade de poder de processamento do seu PC, basicamente, muito lento. E aqui estão os plug-ins, por enquanto, não usaremos nenhum plug-in para a série de palestras, porque geralmente podemos fazer quase tudo o que precisamos manualmente ou sozinhos. No entanto, existem alguns plug-ins muito legais que estão disponíveis. Mas, por enquanto, não vamos nos concentrar nisso, certo? E essa é uma visão geral. Como eu disse, poderíamos entrar em detalhes malucos sobre todo tipo de coisa por enquanto, vamos ficar bem com isso. E então, basicamente, partiremos daqui e daremos um passo de cada vez. Mas isso vai acabar com esta palestra aqui até a próxima vez. Então, sim. 16. (Roblox) Referência a uma parte: Tudo bem, bem-vindo de volta ao básico do Roblox aqui para o curso de robótica. E nesta palestra, vamos dar uma olhada nas peças e como referenciá-las. Então, o que são partes, enquanto poros são tudo que existe no espaço de trabalho, por assim dizer. Então, se clicarmos nessa parte aqui, você verá que estamos criando uma nova porta. Podemos excluir isso novamente. Também podemos usar o ponto positivo na área de trabalho e descer até a porta ou podemos simplesmente colocar uma parte e você pode ver a parte e, em seguida, ela também cria uma nova peça para nós, se tivermos essa porta. Agora podemos arrastar isso e movê-lo. E podemos fazer todas as coisas que vimos até agora, certo? Podemos nos movimentar e escalar esse porto. Podemos fazer isso maior, podemos fazer isso menor. Podemos mover isso de um lado para o outro. Portanto, há muitas coisas que podemos fazer com essa porta em particular. E vai ser muito interessante fato, agora este se chama porto. E o que talvez queiramos fazer é referenciar isso dentro de um script, certo? Então, há várias maneiras de fazer isso. Por enquanto. Vamos criar quase todos os nossos scripts em vez do serviço de script do servidor, o que tornará isso um, bem, um script de servidor, certo? Isso só será executado no servidor. As diferenças entre servidores e clientes falarão um pouco mais sobre isso nos próximos anos, pois uma pequena visão geral em geral, o servidor é basicamente o que o Roblox controla. É como se em algum lugar em um servidor, em algum lugar no Roblox Land, você não tivesse nada a ver com isso. Você é o cliente, então seu PC é o cliente. Quando você se conecta a um jogo, você se conecta a um desses servidores e seu cliente obviamente não pode fazer tudo, certo? Assim, o cliente pode alterar o número de moedas que você tem. Porque se você fosse capaz de fazer isso, você poderia simplesmente apertar um botão ou criar um script personalizado e dizer : Oh, eu tenho 1.000 moedas e os servidores , sim, com certeza. Você tem 1.000 moedas. Portanto, deve haver uma dissociação, independentemente disso, neste momento, uma espécie de serviço de script. Vamos criar um novo script, vou chamar isso. Vamos escolher esse traço F2 O2 e chamaremos isso de referência. Ligo ampliará isso mais uma vez e chamaremos isso referência a uma parte do espaço de trabalho. Isso vai ser muito interessante, de fato. Então, há algumas coisas que podemos fazer. Então, digamos que queremos fazer referência à placa base. Nós podemos fazer isso. Vamos criar uma placa base variável local e isso é igual ao jogo. Então, sempre queremos começar com o jogo em letras minúsculas. Isso é muito importante, e agora você pode ver que estou recebendo tudo o que está em vez de aqui. Então, basicamente, o jogo é a raiz do explorador. Você pode ver que eu tenho jogadores, que é esse cara aqui. Eu consigo espaço de trabalho com esse cara. E há um monte de outras coisas agora, eu me pergunto se você tem um espaço de trabalho. Mais uma vez, muito importante. O invólucro é importante aqui. Sempre tenha isso em mente. Um espaço de trabalho com um w minúsculo pode parecer que pode funcionar, mas não funcionará. Portanto, tenha isso em mente. Sempre verifique se o invólucro está correto. Isso e agora, de repente, você pode ver que há um monte de coisas, mas também há uma câmera, que está aqui. E há a primeira parte. Olha isso. Essa é a parte legal, é a mesma porta? De fato, é. E o nome aqui tem que corresponder exatamente. Se eu renomear isso, se eu clicar nele, pressione F2 e renomeie para a porta p minúscula. Isso não funcionará mais. Agora, você pode até ver, isso nos sugere uma porta com letras minúsculas porque esse é o nome da parte que estamos referenciando. Tem que corresponder exatamente. Sei que estou insistindo nesse ponto, mas é extremamente importante porque tenho visto repetidamente que as pessoas acabaram de trocar o invólucro. O invólucro é importante. Ok, então agora estamos referenciando a peça com p minúsculo, certo? Ok, tudo bem. Como placa de base, não é isso que queremos. Na verdade, queremos referenciar as placas de base. Então, basicamente, aí está. Eu posso preencher isso automaticamente com a guia. Agora eu mencionei a placa base. Eu posso fazer coisas com ele. Bem, tudo bem. Mas e a minha parte que eu quero referenciar? Bem, vamos dizer local novamente. E então vamos chamá-la de minha parte pois é apenas o nome da variável, que é diferente do nome do objeto da peça. Isso também é muito importante. Isso é o que está representado. Insira o código enquanto essa é a parte real do objeto físico. E mais uma vez, vamos dizer espaço de trabalho do jogo e depois portar, não pai. Na verdade, queremos estacionar. Aí está. E agora podemos fazer coisas com uma porta porque a peça tem diferentes tipos de propriedades. Podemos alterar essas propriedades de dentro do script. Então, podemos dizer minha parte, que é a variável que aponta para essa parte em particular. Isso, e agora você pode ver que eu posso mudar a posição, eu posso mudar o nome, a rotação, a cor. No nosso caso, vamos apenas mudar a transparência para 0,5. E então também faremos minha parte: cor de pontos. E então podemos mudar isso para uma cor de três pontos nu. E então faremos algo como se pudéssemos realmente mudar a cor aqui. Então, vamos escolher um lindo azul. Sim, isso é bom. Então, isso é apenas gerar automaticamente essas cores. Você pode ver se eu clicar na altura disso, se eu clicar no sábado, como você pode ver, na cor aqui, e você pode clicar na roda de cores para mudar a cor, que é muito, muito legal. Agora, o que vai acontecer quando realmente começarmos o jogo? Bem, vamos entrar na visualização do jogo. Ouvimos a porta agora , parece completamente normal, mas se eu começar o jogo, deve ficar transparente em 50 por cento. Portanto, ele deve ser 50% transparente e deve ficar azul. Vamos jogar o jogo e ver onde, em vez do jogo. E se eu for por aqui, você pode ver que agora é um pouco transparente e é azul, exatamente o que queríamos. Se entrarmos no espaço de trabalho, podemos até ver a peça aqui. Agora ele tem uma cor diferente e a transparência é 0,5. Muito legal, eu posso ver que quando não estamos mais jogando o jogo, ele basicamente redefine suas propriedades originais nesse caso, porque alterá-las em vez do script, isso não as altera permanentemente. Então, essa seria uma forma de referenciar uma peça em um espaço de trabalho por meio do nome aqui. Agora, mais uma vez, é extremamente importante que se eu mudar os nomes aqui para, por exemplo, minha parte legal, certo? Agora, se eu jogasse isso agora, o que você acha que acontece? Bem, estamos nos referindo a algo que é chamado de parte. Vamos apenas jogar. E veremos que essa parte não é um membro válido das obras ou não desenvolve um membro do espaço de trabalho. espaço de trabalho não mudou sua cor nem sua transparência porque agora a peça é chamada de Mike cool part. Portanto, tenha isso em mente. Se você receber esse erro aqui, significa simplesmente que você provavelmente está se referindo a algo que teve um nome alterado. Se tivermos certeza de que estamos fazendo isso, de repente, se jogarmos isso, agora podemos ver que não estamos recebendo nenhum erro. E mais uma vez, obtemos nossa parte azul que é transparente. Muito legal, certo, resumir, como eu disse, garante nomear as coisas corretamente. Você pode usar o game dot workspace dot, qualquer que seja o nome da sua porta que você deseja referenciar. Certifique-se de que eles garantam que o invólucro esteja sempre correto. E então você pode acessar as propriedades fazendo sua parte variável dot. E então você pode acessar todos os tipos de propriedades que fazem parte dessa parte específica. E você pode alterá-los com um roteiro, mas isso vai ser o suficiente para esta palestra aqui. Espero que tenham achado isso útil , os alertas e o novo vemos na próxima palestra. Então, sim. 17. (Roblox) Tipos de scripts: Vamos continuar com os obstáculos básicos aqui, siga o curso Roblox e, nesta palestra, daremos uma olhada nos diferentes tipos de scripts. Então, já vimos isso anteriormente quando criamos um novo script no serviço de script do servidor, ele é basicamente usado com frequência como script e script de módulo. Há, no entanto, outro tipo de roteiro. Se digitarmos isso aqui, você verá que também existe um script local. Infelizmente, o script normal aparentemente não tem uma dica de ferramenta, no entanto, o script local tem. Assim, você pode ver que um script local é executado no cliente e não nos servidores. Portanto, os scripts do logotipo podem ser colocados sob os seguintes itens. A mochila de um jogador, o modelo do personagem do jogador, o uso da GUI, o script do jogador e o primeiro serviço replicado, o script do módulo, à direita, é um fragmento de script e só é executado quando outros scripts usam os Requisitos nele. Então essa é interessante. E o roteiro, bem, isso é apenas um roteiro normal. Até agora, usamos scripts normais no serviço de script do servidor. E isso então foi executado no servidor e no cliente. Essa é a ideia geral. Agora, há algumas coisas que você só quer que o cliente aconteça. Essas são principalmente coisas que são basicamente específicas do cliente. Então, talvez visuais, certo? Talvez você queira adicionar imagens a um determinado cliente. Isso é basicamente algo que você quer fazer com o cliente. Scripts locais ou scripts de clientes. Eles podem se comunicar com um servidor por meio de eventos remotos. Mas esse é um tópico muito mais parecido com um tópico intermediário e avançado, sobre o qual não falaremos agora. Mas a ideia geral é que sim, podemos ter scripts locais. Então, se formos, mais uma vez, dar uma olhada em onde podemos adicionar isso, uma mochila, um modelo de personagem, um GYE, os scripts de um jogador replicarão o primeiro serviço. Então, o que podemos fazer é adicionar isso ao replicado primeiro. Você pode ver que até diz: “Ei, roteiro local”. E se fizéssemos isso, e disséssemos apenas imprimir, imprimir, Hello, World está totalmente bem. Vamos renomear isso e eu direi script local O3 neste caso. E então, apenas um exemplo de script local, neste caso vamos imprimir hello world, e vamos ver se jogarmos isso, ele será produzido. Mas agora, e isso é uma coisa crucial. Agora temos um cliente aqui. Então isso é o que não tínhamos antes, certo? Agora, na verdade, obtemos algo produzido pelo cliente. E isso é extremamente importante se entrássemos na referência aqui e fizéssemos um HelloWorld impresso, exatamente a mesma coisa, só por uma exatamente a mesma coisa, só por questão de argumento e tocarmos isso. Você vai ver que agora está no servidor. Você pode ver que lá está. Então o HelloWorld está no servidor da O2 referenciando a linha oito e o outro, certo, o HelloWorld, este é do cliente ou de três scripts locais para escrever. Agora você pode dizer, bem, qual é a grande diferença, certo? Não há nada louco acontecendo. Bem, agora este é meu cliente e eu posso realmente mudar para o servidor e o servidor. O servidor basicamente controla tudo, certo? Então, o servidor, em teoria, eu poderia simplesmente dizer: Ei, você sabe o que, não, eu vou mudar meu cara para cá e vou movê-lo. Agora, você pode seguir as regras normais de movimento. Mas se você tentasse mudar sua posição em relação ao cliente, isso não funcionaria, porque é aí que entram as coisas anti-trapaça. Portanto, a separação cliente-servidor é muito importante. Então, essa é basicamente a ideia geral de um script local. E como eu disse, você pode se comunicar com o servidor, mas isso é algo para um nível intermediário. E então um script de módulo é um pouco mais complicado. Então, vamos criar um módulo de teste O3 de script de módulo aqui. Nesse caso, vamos realmente chamar esse depoimento. Aí está. Então, no script do módulo, a ideia geral é colocar funções ou certas funções, basicamente, que você vai usar muitas vezes, certo? Então, multiplicadores diferentes, funções de bônus diferentes, alguns cálculos que você pode estar usando. Muitas vezes, o que você pode usar é criar uma nova função. E a maneira de fazer isso é pegar essa mesa aqui. Eu vou dizer módulo. Então esse é o nome da tabela que soma. Então esse será o nome do método e, em seguida, o que quisermos. Então, basicamente, vamos fazer um método de soma novamente e vamos retornar esse caso, não repetir, vamos retornar x mais y. Então, mais uma vez, isso é apenas um exemplo. Escreva um método de soma. Você realmente não criaria um script de módulo personalizado para ele, mas só para ver, ok, é assim que você criaria um método em um script de módulo e o referenciaria posteriormente. Então, se tivermos isso, agora podemos, no script do servidor, os servidores mais uma vez criar um script normal e chamaremos isso de módulos de teste de 03 traços. Por que não? Tudo bem. Aí está. E o que vamos fazer é agora conectar de alguma forma esse script de módulo a esse script específico. A maneira de fazer isso é que precisamos usar o método require aqui, mas na verdade queremos fazer uma variável local. Então, vamos chamar isso de soma. Claro, e isso é igual ao método exigido. E então precisamos referenciar o script do módulo. Então, este é o serviço de script do servidor Game Dot e seguida, o módulo de testes.o3 exatamente assim. E então, na verdade , o representará assim, porque podemos começar uma referência de um ponto com um número, mas tudo bem. Podemos usá-lo assim, tudo bem. E então podemos dizer, vamos imprimir isso. Então, vamos imprimir o ponto de soma e você pode ver que agora até nos diz, ei, soma, podemos usar essa tecla Tab para preencher automaticamente e podemos dizer uma camisa 50,23. Por que não? Então, isso seria 73 que estamos imprimindo aqui. Então, vamos jogar. E vamos ver se o servidor imprime 73 aqui. Muito incrível, de fato. E, claro, isso é mais uma vez, apenas um exemplo. A ideia aqui é que você sabe, se você tem certos, se você tem certos números, certo? Então você pode adicionar coisas como, você sabe, você pode adicionar tabelas diferentes. Você poderia acrescentar que talvez exista uma experiência, um multiplicador de experiência ou algo parecido, certo? E então você poderia simplesmente adicionar uma nova tabela e você diria , você sabe, talvez seja fácil, você ganha mais experiência, certo? Então você ganha cerca de 25 pontos. Mais experiente, médio, você fica como uma experiência normal. E então, no máximo, talvez você tenha menos experiência. Isso é apenas mais uma vez, como apenas um exemplo do que você poderia usar aqui. Agora, essa não estaria disponível apenas no módulo, é extremamente importante porque agora é uma variável local, certo? Vamos dar uma olhada. Se fôssemos imprimir a soma R e tentássemos usá-la. Não seríamos capazes de fazer isso. Só usamos alguns aqui, o que é interessante. Agora, se não fizéssemos o local, o que aconteceria agora? Você acha que agora poderemos usar isso? Bem, vamos dar uma olhada, certo, resumo de que ainda não podemos usar isso, porque para usar isso, precisaremos fazer o módulo dot. E agora, de repente, é meio adicionado a essa tabela em particular. E agora, se entrarmos aqui, de repente temos, temos o multiplicador de experiência disponível para nós que é realmente incrível e pode, basicamente , fazer muito sentido, certo? Você pode armazenar muitas coisas em vez de módulos, scripts que você usará em, bem, em todos os scripts diferentes. Talvez um jogador especial nomeie certas coisas para se conectar a determinados serviços posteriormente. Portanto, um script de módulo extremamente útil para muitas coisas. E só para mostrar, você pode ver experiência de soma, meio multiplicador. Se você imprimisse isso , obteríamos um ou aqui, porque esse é exatamente o meio que definimos aqui. Agora, isso é realmente incrível. Então, para resumir, há três tipos de scripts diferentes que são scripts locais que são executados somente no cliente. Depois, há scripts normais que podem ser executados tanto no servidor quanto no cliente, e eles são meio que síncronos automaticamente. E também há módulos, scripts que são usados para armazenar variáveis ou funções que você poderá usar em qualquer lugar do seu código. E isso basicamente ajuda você a não se repetir. De qualquer forma, espero que você tenha achado isso útil e aprenda algo novo e nos vemos na próxima palestra. Então, sim. 18. Visão geral de propriedades: Vamos continuar com a parte inicial do curso de bloqueios de estradas. E nesta palestra, vamos dar uma olhada nas propriedades. Então, vamos fazer um mergulho profundo nas propriedades. Então, vamos expandir essa janela e pegar nossa parte interessante e dar uma olhada em todas as propriedades loucas e diferentes que temos disponíveis. Então, a primeira é a cor do tijolo em geral, a cor do tijolo e a cor, ou quase a mesma coisa. Então, se escolhermos uma cor de tijolo diferente aqui, digamos, como um azul escuro, você pode ver que a cor aqui muda. E a ideia geral da bricolagem é que são cores predefinidas e fáceis de usar. Embora a cor possa ser literalmente como qualquer cor, certo? Se eu escolher uma cor aleatória aqui , ela não vai ter um nome. Então você pode ver que diz que é marrom, verde amarelado. Então, vai se aproximar dessa, mas não é exatamente dessa cor, certo? Então você pode ver que tudo isso é amor. E então eu não sei se essa é olivina, mas se eu mudasse um pouco os números aqui, certo, não mudaria muito em sua aparência, certo? Talvez isso seja como dois aqui. E então será uma violeta de areia. Mas você pode ver que está , não está exatamente aqui. É exatamente como onde está a areia, violeta. Eu não tenho ideia. Não consigo encontrá-lo. Bem, de qualquer forma, essa é a ideia geral, certo? Então você pode colocar um número aqui. Então isso seria um feitiço, certo? Algo parecido. Então agora é preto metálico, mas isso não é realmente uma mentalidade negra. Você pode ver essa cor e essa cor, elas não são iguais. Portanto, é a ideia geral da cor do tijolo e da cor quando se trata de projetar sombras que deve ser bastante autoexplicativa. Neste momento, projeta uma sombra e agora não. Ou seja, isso é praticamente tudo o que existe , o material. Assim, você pode escolher diferentes tipos de material. Portanto, certos materiais têm certas propriedades. Portanto, você pode escolher metal, por exemplo que será um pouco refletivo de luz. Então você pode ver que isso agora realmente se parece muito com metal. O plástico simplesmente não seria nada. Então, se escolhermos o vidro, certo, ele não é 100% translúcido porque é claro que a transparência não existe. Mas se fôssemos tornar isso transparente, agora seria como se um copo Shine n também fosse transparente. Muito legal. Portanto, há vários materiais diferentes que você pode escolher. plástico é o normal sem textura real, certo? Portanto, a variante de material, neste caso, não temos nenhuma variação de material e, na verdade, nem tenho certeza de qual dos materiais tem uma. Podemos ir até o gerente de materiais aqui e podemos realmente dar uma olhada em todos os materiais que existem aqui. Campo de força, por exemplo, poderíamos escolher o campo de força. Então, é assim que o campo de força ficaria. E então podemos entrar aqui e escolher o campo de força, por exemplo, campo de força. E agora isso é um campo de força. Então você pode ver que é muito transparente de todos os lados. Então, isso é realmente interessante. E há um monte de outras coisas. Temos metal aqui, diferentes tipos de metal, folha de diamante, corrosão. Metal é realmente incrível que você possa fazer com algumas dessas coisas, certo? Se escolhermos metal corroído, por exemplo se eles puderem ver a cor aqui muda o que muda na textura em si, certo? Agora você pode ver que a cor aqui é como a cor base. Se escolhêssemos esse vermelho, de repente ele ficaria vermelho, verde, coisas assim. Então, é muito legal o que você gostaria de mudar aqui, e é realmente incrível. Então, é altamente recomendável brincar um pouco com isso e dar uma ideia desse tijolo também é muito legal e você obtém uma textura de tijolo logo em cima dele. Realmente incrível, refletância vermelha e transparência. Já falamos sobre isso antes, certo? refletância basicamente torna a coisa real mais refletida. Agora você pode ver que isso depende do material, porque agora o material do tijolo, na verdade, não pode ser refletido. Se voltarmos para o plástico, que pode ser basicamente qualquer coisa que você quiser, podemos fazer com que isso seja o reflexo que você quiser. 100% seria literalmente, ele reflete toda a luz. Então agora tem um, agora é um espelho, certo? E isso reflete perfeitamente isso. Mas como nosso script torna a transparência de 0,5, na verdade não queremos isso. E agora temos um espelho novamente. Agora você pode ver que não reflete o player. Isso será muito intenso para grande parte do processamento. Mas essa é a ideia geral para a reflexão e depois para a transparência. Já vimos isso , basicamente o quão transparente é essa parte específica. Então, arquivística, uma coisa muito importante sobre todas as propriedades diferentes. E isso é realmente muito importante. Você pode passar o mouse sobre isso e ele fornecerá uma breve descrição do que essa coisa em particular faz. Então, você pode ver que o arquivo é basicamente como : “Isso vai ser salvo aqui? Então, temos um nome de classe que geralmente está bloqueado porque, nesse caso, é uma porta. Também podemos fazer com que isso seja bloqueado. Então, se fizermos essa fechadura, poderemos movê-la por mais tempo. Então, se bloquearmos isso e agora eu nem consigo como se eu não pudesse mais tentar selecionar isso. E agora eu posso voltar aqui e desbloqueá-lo, e agora eu posso selecioná-lo novamente, posso movê-lo novamente. Muito interessante. De fato, o nome aqui e o pai devem ser bastante autoexplicativos. E então esses geralmente também não são mutáveis. No entanto, o tamanho é variável, então talvez queiramos dimensioná-lo, talvez fazer 758, talvez algo que não seja demais. Aí está. Então, isso é muito legal. Então você pode ver que agora ele está dimensionado e também podemos mudar a posição. Então, quando mudamos a posição, você pode ver a posição tanto na origem quanto no quadro C. Portanto, você também pode fazer isso manualmente. Então eu poderia fazer -25,20 novamente, e você pode ver como ele se moveu e isso é muito legal. Agora, o ponto de origem é basicamente, você pode passar o mouse sobre isso, certo? Ele contém as informações da posição e da matriz da rotação. Você pode mudar isso e ler a partir dele. A origem, se você já pensou nisso, é basicamente aqui que isso gira. Então, a ideia geral é que, se eu girar, ele gira em torno de um certo ponto no espaço e você pode ver que aponta, ele gira exatamente no meio dessa parte em particular, certo? No entanto, se eu fosse mudar a posição da origem, vamos assumir o controle Z para tornar a rotação zero novamente, se eu mudasse isso para 000 aqui, certo? Agora, a coisa realmente vem com ela. Não é isso que queremos. Queremos compensar o pivô, certo? Agora, se compensássemos o pivô 20 menos cinco e -20, seria com isso que queremos compensá-lo. De repente, o pivô está em zeros, zeros. Então você pode ver agora que a posição é 00 porque nós compensamos o pivô. E se eu girasse, agora giraríamos em torno dessa posição específica. Então, agora vamos girar em torno disso. Então, isso é muito legal, na verdade, porque o que você pode fazer é compensar isso. E se você quiser, por exemplo , ter uma plataforma giratória, bem, eles podem simplesmente mudar a rotação aqui e agora, mudar a rotação aqui e agora de repente, você tem uma plataforma giratória. Você pode enlouquecer à distância. Mas sim, isso é muito legal e pode ser usado para muitas coisas diferentes. Nesse caso, pode colidir e tocar deve ser bastante autoexplicativo, certo? É só se uma interação física pode acontecer ou não aqui, pode tocar. Basicamente, se o evento Touched for chamado assim, também há diferentes grupos de colisões que você pode definir. Uma ancorada significa que não, que não é afetada pela gravidade. Então, se tivéssemos isso, vamos colocar isso no ar e não está ancorado. Se jogarmos, ele vai cair no chão. Então, podemos realmente ver isso. Então você pode ver que agora está no chão, mesmo que nós o coloquemos no ar. E se ancorássemos isso corretamente, se descêssemos aqui e ancorássemos isso , isso significaria que ele permanecerá nessa posição específica e não será afetado pela gravidade. Então você pode ver agora que está no ar. Muito legal, certo? Propriedades físicas personalizadas, sem massa, coisas assim. Normalmente eu recomendo ficar um pouco longe deles, porque aí você se mete em coisas malucas, certo? As propriedades físicas personalizadas que você pode ver podem alterar o atrito, a elasticidade, a densidade. Então, há algumas coisas legais que você pode fazer com ele. Mas isso definitivamente é um pouco mais para usuários intermediários e avançados, certo? E o resto com eu não mexeria por enquanto. No entanto, você sempre pode passar o mouse sobre as coisas e dar uma olhada no que as diferentes propriedades significam basicamente. E agora essas são, obviamente, propriedades específicas de propriedades específicas uma peça, dependendo do que você está criando aqui. Se clicarmos em criar uma textura ou vaca D, ou uma taxa de diálogo ou um aviso de proximidade. Todas essas coisas malucas, todas elas terão propriedades diferentes. No entanto, você deve pensar, simplesmente perceber que uma propriedade nada mais se parece com uma variável ou um atributo anexado a um determinado objeto. Nesse caso, não deveria ser nada louco. Mas se você tiver uma propriedade, é algo como taxa de geração, por exemplo, também pode ser uma propriedade personalizada. E então você diria, oh, esse é provavelmente um número que tem uma certa relação com a taxa de geração de uma determinada coisa, certo? Portanto, esta é a visão geral das propriedades que pode ser muito útil e muito legal para brincar um pouco com isso. E então você verá que há muitas coisas que você pode fazer com propriedades e até propriedades personalizadas, que veremos mais adiante para resumir cada um dos seus objetos que existem tem propriedades. Algumas delas são propriedades que todas as coisas diferentes compartilham. se isso fosse uma coisa em vez de um espaço 3D, Por exemplo, se isso fosse uma coisa em vez de um espaço 3D, sempre tivesse uma moldura C e uma origem, significado e tamanho. Então, essa é basicamente a transformação que significa a posição real do objeto no espaço 3D. E há outras coisas, como colisões, coisas que descendem de peças também podem ser ancoradas sem massa, todo tipo de coisa. Portanto, existem várias propriedades. Eu recomendo experimentar um pouco com isso, apenas adicionando uma nova porta, brincando com algumas das propriedades que existem aqui. E você pode até mesmo adicionar seus próprios atributos por enquanto. Não vamos nos aventurar nisso agora. Mas basta dizer que, com propriedades, você poderia fazer muitas coisas legais. Tudo bem, será isso para esta palestra aqui, ou achamos isso útil e aprendemos algo novo. Vejo todos vocês na próxima palestra. Então, sim. 19. (Roblox) Vector3 e posição: Tudo bem, bem-vindo ao básico do Roblox para o curso Roblox. E nesta palestra vamos falar sobre vetores e mudar a posição de uma peça. Então, falamos sobre referenciar peças antes. Falamos sobre módulos, scripts e falamos sobre as propriedades. E agora vamos realmente alterar essas propriedades corretamente dentro de um script. Então, vamos fazer um novo roteiro aqui. Ele precisa do serviço de script do servidor. Vamos chamá-la de 05 posições de traço. E então vamos ver. Então, chamaremos isso de vetor três e posições. Comente aqui e depois falaremos sobre o que é isso. Então, primeiro de tudo, vamos realmente fazer nossa parte. Então, minha parte aqui será igual ao espaço de trabalho do jogo, minha parte legal. Então, vimos isso anteriormente na palestra de referência. Então isso não deve ser nada louco. E agora, o que podemos fazer minha parte e agora podemos mudar o que quero dizer praticamente todas as diferentes propriedades que estão lá, incluindo algumas coisas que são como um raio aqui. E temos até coisas estranhas do tipo gabinete de arquivos. Por enquanto, vamos usar apenas os cubos azuis e, por exemplo a posição que você pode ver é do tipo vetor três, e isso descreve a posição dessa parte dentro do mundo. Atualmente, se fizermos isso e imprimirmos isso apenas por uma questão de argumento. Vamos imprimir isso. Devemos obter um vetor que seja -21,8 e assim por diante até 0,4, 99,1, 17,93. Então essa é basicamente essa posição. E se eu mudasse isso, nada mudaria na saída porque estamos produzindo apenas de uma vez. Então, se eu entrar na posição aqui e fizer 50, 50, 50, como se a posição real mudasse. Então agora está lá. Mas isso não atualizaria a saída porque, embora ela já tenha sido produzida e nós a produzamos apenas uma vez, isso é justo. E se mudássemos essa posição, certo? Então, e se produzirmos a posição e, em seguida estivermos dizendo y parte dessa posição, e então quisermos mudar isso. Como podemos mudar isso? Bem, mudamos isso dando a ele um novo vetor três, certo? Então, queremos dizer menu vetorial de três pontos. E aqui colocamos um número X, um número e um número Z. Agora, o importante aqui é que um vetor três escreva um vetor. Talvez você tenha feito isso em matemática. Talvez você tenha tido isso em matemática em geral. É muito fácil de entender. O que você provavelmente já viu antes é vamos fazer algo assim. Então você provavelmente já viu uma grade bidimensional antes com um eixo y e um eixo x, certo? E com isso, você pode descrever cada ponto com dois números. Agora é a mesma coisa em três direções, assim como em outra direção, certo? Então, essa posição, como vimos antes, é deixar isso um pouco mais agradável. 2015 e -17 por uma questão de argumentação, certo? Agora está aqui e agora podemos mudar essa posição apenas dando a ela coordenadas diferentes. Então, digamos que em vez de -21, teremos, vamos fazer 50, 50, 50 novamente. E isso agora está ancorado nas peças, então vai ficar no ar. Então, o que esperaríamos encontrar é que isso gera -20, 15, -17, então vamos mudar a posição para 50, 50, 50. Então, quando realmente entramos no jogo, mesmo que isso produza os números antigos, isso agora é alterado para 50, 50, 50. E podemos confirmar isso, estamos apenas descendo e podemos ver posição é 50, 50, 50. Muito interessante, mas só podemos mudar isso. É claro que podemos mudar, quero dizer, praticamente tudo isso. Podemos até mudar a rotação, que também é um vetor três. Agora, há algumas coisas interessantes sobre a rotação no espaço tridimensional. Por enquanto, vamos apenas fazer o vetor aqui. Então, por exemplo, poderíamos fazer 4500, digamos, e agora, na direção x, giramos 45 graus. Então, vamos dar uma olhada e podemos ver, se dermos uma olhada nisso, você pode ver que agora está girado em torno de 45 graus. E se realmente dermos uma olhada nisso, você também pode ver que a orientação agora não é exatamente 45, mas basicamente 45. Às vezes, há problemas de arredondamento. Portanto, lembre-se de que às vezes o arredondamento pode ser um pouco estranho, especialmente com esses vetores porque há muitos cálculos que precisam ser feitos. Então, às vezes, eles arredondam para baixo ou para cima de uma forma um pouco estranha. Também podemos fazer algo muito interessante e talvez queiramos mover a peça, certo? Então, talvez queiramos realmente dizer: Você sabe o que? Na verdade, quero que a posição mude. Então, eu quero assumir a posição real da minha parte e talvez eu só quisesse prosseguir com alguns estudos. Então, digamos que faça um novo vetor aqui. Não queremos mover o eixo x. Queremos movê-lo talvez 25 para baixo no eixo z. E talvez queiramos fazer mais cinco no eixo z. Na verdade, não mais cinco, apenas 5 anos no eixo z. Você pode ver que tudo isso funciona porque se você fizer um vetor, vetor menos um vetor, tudo funcionará perfeitamente bem. Então, se jogarmos isso, agora veremos que o cubo se moveu para onde se moveu. Bem, vale a pena, está aí. E se dermos uma olhada nesse micro à parte , agora está em 50, 75, 45. Agora você fica tipo, isso é meio estranho. Sim, isso é meio estranho. Como isso aconteceu? Bem, subtraímos esse vetor, certo? Então, pegamos 50 menos zero, isso é 50. É justo. Fizemos 50 menos -25. Oh, bem, menos, menos, isso é uma vantagem, o que significa que há um 75. E aqui subtraímos cinco. Então, essa é uma questão interessante em que, se subtrairmos algo, na verdade não queremos nenhum número negativo aqui. E então, se fôssemos executar isso novamente, agora você pode ver que cada um estará mais abaixo e lá está. Então, agora está bem mais abaixo. E agora nossos cálculos funcionam totalmente bem. Então essa é a ideia geral do cálculo dos vetores, certo? Então, basicamente, é sempre o primeiro elemento menos ou mais a taxa, por exemplo, isso funcionará. Então, faríamos se mantivéssemos o sinal negativo, esse seria o primeiro elemento. Os novos elementos serão 50 menos zero. E então o segundo seria 50 -25, e o último seria 50 menos cinco. Essa é a ideia geral disso. O que aconteceria se disséssemos Você sabe o que, vamos cronometrar isso”. Isso vai funcionar? Bem, vamos fazer 22.2 aqui. E vamos ver o que acontece. Portanto, não há erros. E se dermos uma olhada, agora está muito, muito longe. E se você der uma olhada nisso, você pode ver 150, 90. Então, exatamente o que esperaríamos que acontecesse aqui. A mesma ideia, certo? Em vez de fazer um menos, agora fazemos vezes dois. E então fazemos isso basicamente para todos eles, certo? Então fazemos isso e depois fazemos isso. Agora isso é na verdade 45 e isso era 25. E é por isso que temos 150,90 como partes aqui. Muito interessante, de fato. Agora, há algumas outras coisas que são interessantes, por exemplo se quisermos avaliar algo, certo? Então, temos o tamanho aqui. Podemos, por exemplo, fazer um vezes igual e , em seguida, podemos aumentá-lo em 50% a mais. Isso vai apenas multiplicar ou dimensionar números por 1,5 aqui neste caso. Então, se olharmos isso de novo, você pode ver que agora é maior , agora não parece muito. Mas se formos aqui e vermos que o tamanho agora é 10,57 ponto 5,12. E se não estivermos correndo, o tamanho é de apenas 75,8. Mas esses são alguns dos exemplos aqui de mudar a posição, a rotação, o tamanho. Isso já é muito legal, certo? Em resumo, a posição ou rotação é representada por um vetor. E um vetor é simplesmente três números aqui, com um x e y e o valor z. E você pode alterá-los com as operações normais, certo? Multiplicando, subtraindo todo esse trabalho. Então isso é muito legal e você faz assim. Bem, isso é tudo para esta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo . Nos vemos na próxima palestra. Então, sim. 20. (Roblox) A função de espera: Tudo bem, vamos continuar com os conceitos básicos de robótica aqui para um curso robusto. Nesta palestra, falaremos sobre a função do peso. Portanto, a função de peso é uma coisa extremamente importante que você encontrará muitas vezes ao longo do script e do Roblox. E vamos criar um novo script aqui, chamá-lo de 06 dash waiting. E vamos chamar isso função de peso porque se trata da função peso. Digamos que eu tenha um for-loop. Comecei do zero, vou até dez e incremento em um. Vamos fazer isso. E digamos que eu imprima o número. Então, se fizéssemos isso, ele imprimirá os números, certo? Imediatamente. Você pode ver zero até dez em questão de, quero dizer, literalmente, quase todos eles, mesmo no mesmo tique-taque, como nos mesmos milissegundos. Isso é o quão rápido foi. Mas digamos que não, não, não, não. Quero que isso seja impresso a cada segundo. Bem, vamos usar apenas a função de peso aqui. Vou passar em um. Então, o que ele realmente faz é gerar o thread atual até que o tempo especificado seja decorrido em segundos. Agora, é muito importante que isso possa ter, digamos, consequências negativas se houver muitos roteiros em andamento. Portanto, a função de peso não é o fim de tudo, você deve usá-la em qualquer lugar. Também existem outras maneiras de esperar que as coisas aconteçam. Portanto, esse não é o fim de tudo. Mas nesse caso, se executássemos esse 012 e você pudesse ver que ele continua funcionando. Continua, eu posso correr por aí, está tudo bem. E continua exatamente 1 s após o outro e nosso atendimento e agora o peso acabou. Então isso é muito legal. Isso é legal para certas coisas como para contar coisas, coisas assim. Isso é realmente incrível. Este é um exemplo de onde a função de peso pode ser realmente útil. Às vezes, também pode ser importante importar certas coisas e às vezes você pensa “Vou esperar um pouco para continuar executando algo”. Mas, como eu disse, a coisa real que ele faz é basicamente produzir o tópico atual. Agora, esse é o discurso de alto nível do computador , basicamente por dizer que ele meio que interrompe tudo o que está fazendo nesse tipo específico de carga de trabalho e continua após decorridos segundos. Portanto, há coisas que, quando você usa isso, podem quebrar certas coisas em seu jogo. Portanto, tenha cuidado e não use seus pesos em todos os lugares. Nós pensamos, oh, isso não funciona. Vamos esperar aqui que isso geralmente não seja o que você quer fazer. Eu só quero enfatizar isso mais uma vez. O que vou comentar a impressão e isso é praticamente tudo o que há na função de peso. Realmente não há nada para resumir. Ele só espera alguns segundos e você não deve usá-lo em todos os lugares em seus scripts. Haverá alguns exemplos de onde vamos usá-lo, que serão interessantes. E há alguns exemplos em que poderíamos usá-lo, mas talvez queiramos usar outra coisa. Bem, isso vai ser o fim desta palestra aqui, ou achamos isso útil e vocês aprenderão algo novo e nos vemos na próxima palestra. 21. Movimento de parte básica: Tudo bem, bem-vindo de volta aos conceitos básicos de robótica aqui para o curso Roblox. E nesta palestra, veremos como mover uma peça. Então, isso vai ser muito interessante, de fato. Então, para isso, no serviço de scripts do servidor, mais uma vez, criamos um novo script e chamaremos isso de 07, e chamaremos esse movimento. Então, isso basicamente abordará algumas das coisas que aprendemos até agora. É claro que, para se separar, existem muitas maneiras de fazer isso. A propósito, este é apenas um exemplo que podemos usar com o entendimento atual que temos. Portanto, existem diferentes maneiras pelas quais seria melhor até mesmo mover peças, mas é possível fazer isso dessa maneira. Então, eu só quero enfatizar essa não é a única maneira e pode não ser a maneira correta para cada coisa que você quer fazer. Mas vamos dar uma olhada nisso. Então, basicamente, vamos colocar nossa parte legal aqui. Órgão, digamos que local é minha parte. E diremos que este é o espaço de trabalho do jogo, ponto minha parte legal. Aí está. Então, o que faremos é fazer um for-loop. Mais uma vez, vamos começar isso da primeira vez. Vamos então passar para, digamos, 15 e aumentaremos em um. E o que faremos então é dentro disso, pois o loop dirá minha parte, essa posição agora será igual à minha parte, aquela posição. Então, a posição real que está em mais um novo vetor. Então, eles serão o vetor três novos. E então vamos dizer, vamos fazer IO aqui, 0.0. Então, estamos definindo a posição atual para si mesma mais I. Então, estamos começando com um. E então, se fizéssemos isso e começássemos, basicamente obteríamos a posição mais 15, porque é isso. Mas e se agora esperássemos um segundo entre isso, o que aconteceria então? Bem, vamos dar uma olhada. Vamos parar com isso. E se encontrarmos nossa parte e corrermos em direção a ela, você pode ver, oh, veja isso. Ele está se movendo um passo por segundo porque está esperando 1 s e depois aumentando e depois esperando 1 s e esperar 1 s e aumentar e esperar 1 s e aumentando até atingir seu destino final, que seria mais 15 na direção x. E podemos ver isso. Agora sua posição é 220, então deveria ter sido 205 antes, por causa de todos os recrutas, das coisas que fizemos antes com os roteiros. Então essa é a ideia geral. Portanto, você pode usar a função de espera nesse caso para atrasar a configuração da posição e isso, fazendo com que pareça que está realmente fazendo alguma coisa. Então você poderia, por exemplo, também fazer, você também pode fazer isso, talvez 50 e então talvez você coloque adicionar um pouco menos. Então, talvez um quarto de segundo. E se você olhar isso agora, ficará muito mais suave. Então, se olharmos para isso, você pode ver agora que não é um movimento suave, mas é um movimento quase suave, certo? E poderíamos fazer isso ainda mais suavemente. Agora eu tenho que aumentar isso porque é claro que ele vai se mover mais rápido se eu aumentar isso ou diminuir o tempo de espera. E se eu olhasse assim, agora, você pode ver que é quase suave. Então, para resumir, embora essa seja uma maneira possível de fazer isso, veremos também veremos outras formas em palestras futuras. Isso ocorre porque há algumas coisas que precisamos abordar antes de realmente fazermos isso. Porque há apenas mais algumas coisas interessantes que precisam ser adicionadas ao seu kit de ferramentas, por assim dizer. Mas, por enquanto, foi isso que aconteceu com esta palestra aqui. Espero que você tenha achado isso útil e tenha aprendido algo novo. Vejo todos vocês na próxima palestra. Então, sim. 22. (Roblox) o evento tocado: Tudo bem, bem-vindo de volta ao básico do Roblox aqui para o curso robusto. E nesta palestra, falaremos sobre o evento Touched. Agora, vimos muitas coisas que podemos mudar no código e nos scripts. No entanto, ainda não chegamos a nenhuma parte em que possamos realmente inserir algo ou fazer algo acontecer enquanto isso está prestes a mudar Vamos criar um novo script aqui no serviço de script do servidor. Vamos chamar esse evento de 08 tocados. E isso vai ser muito interessante, de fato. Portanto, o evento Touched é um evento, como o nome sugere. E eventos são basicamente, bem, coisas que acontecem. , esses são eventos que podem acionar determinadas funções para serem executadas. O evento In the Touched é basicamente chamado toda vez que uma peça toca outra parte. Então, só para fins de argumentação, vamos realmente nos livrar de todas as minhas mudanças de posicionamento aqui. Porque na verdade não queremos esses dois. Bem, não queremos que isso afete mais a parte central R aqui. Então, vamos jogar isso e então nossa parte legal deve ficar onde está. Bem, vai diminuir o zoom, mas na verdade é meio engraçado. Então isso por causa do movimento aqui. Então, vamos nos livrar do nosso movimento também. E agora devemos ter uma ficha limpa. Então, para o evento Touched, primeiro lugar, vamos receber nossa parte novamente. Então, minha parte é, mais uma vez, espaço de trabalho do jogo. E então, minha parte legal neste caso, aí está. E então teremos eventos emocionantes. Então, vamos dizer minha parte ponto e depois podemos dizer tocado. E você pode ver que isso é um raio. Então, um raio, ou seja, um evento. Assim, você pode ver que isso é acionado quando uma peça entra em contato com outra peça. Muito legal. Você também pode dar uma olhada em todos os outros relâmpagos. Há também uma mudança, um direito, acionada imediatamente após a alteração de uma propriedade de um objeto. Pode ser interessante que queiramos ver isso destruindo incêndios imediatamente antes que uma instância seja destruída. Ok, o toque final é quando você para de tocar em outra parte, e assim por diante. Agora queremos usar o evento Touched aqui. E o que queremos fazer é fazer dois pontos e depois nos conectar. Isso é muito interessante. Então você também pode fazer outras coisas. Você também pode fazer uma vez , isso chamaria algo uma vez. Este conecta uma função a um evento, basicamente dizendo: Ei, esse evento específico é chamado, então queremos realmente chamar essa função onde também há um peso que espera por algo. E aqui conectar em paralelo é ainda mais complicado, basicamente uma vez e conectar são coisas interessantes. Então, digamos que um está aqui, dentro dessa função específica, a função das unidades, podemos colocar outra função, certo? E então dizemos outra parte, e vamos fazer essa função em vez desta. Então você pode ver que essa é a função aqui, e esses são os parênteses finais de uma vez. E então podemos simplesmente dizer imprimir, e então podemos dizer, por exemplo, outra parte, certo? Então, o que acontece aqui é que essa outra parte é a parte que ela tocou na minha parte. Então, se tocarmos essa coisa em particular, o que aconteceria? Placa de base, você pode dizer o que? Bem, olha isso. A micropeça está tocando a placa base, certo? E se eu pulasse aqui, nada aconteceria. Por que isso? Bem, porque uma vez significa uma vez, acontece uma vez. E então eu disse, no entanto, se conectássemos isso, certo, se disséssemos conectar, o que aconteceria agora? Bem, vamos jogar isso e você verá que vai enviar spam para a placa base aqui até que não abranja mais a placa base. Ok, interessante, o que aconteceria se eu agora pulasse para isso? Bem, vamos fazer isso. E você pode ver a parte da raiz humanóide, pé esquerdo, pé direito. E também as perguntas: por que isso para? Bem, no evento Touched, basicamente, você precisa começar a tocar e não gostar de tocar continuamente. Isso é algo um pouco diferente. Mas você pode ver que agora, dependendo de como eu o move, ele fica como diferentes partes do meu corpo. Porque se entrarmos na contagem de espaços de trabalho e Joe, eu sou representado por uma série de partes diferentes, como pequenas. O pé esquerdo, a mão esquerda e assim por diante. E não como todo o meu corpo, por assim dizer. Ok, então isso é muito interessante. Mas agora podemos realmente fazer as coisas acontecerem tocando em um objeto específico. Então, poderíamos, por exemplo , na parte micro , fazer isso ancorado para que fique no ar. Então agora está flutuando. Então, nunca vai tocar o chão. E então podemos fazer o que quisermos. Podemos imprimir algo. Podemos deixá-lo começar a se mover. Podemos atirar no jogador para o céu. Quero dizer, há todo tipo de coisa por causa dessa outra parte, certo? Sempre temos acesso ao que afetou nossa parte. Portanto, devemos ter acesso ao jogador de alguma forma ou ao personagem, certo? Portanto, também podemos fazer algo com isso. Em nossos propósitos, a única coisa que vamos fazer é diminuir a transparência do objeto. Então, vamos dizer que vamos fazer com que a transparência seja igual a um. Então basicamente, vai mudar 2,5 de qualquer maneira, e então vamos mudar para um quando isso realmente tocar em alguma coisa. Então, assim que eu pular sobre esse objeto ou simplesmente escove-lo, ele basicamente desaparecerá porque a transparência será uma. Pronto, aí está. Desapareceu. Agora é claro que não desapareceu, certo? Ainda está lá, mas é invisível. Então é muito legal que você possa alterar certas propriedades agora, pois, você sabe, algo está acontecendo dentro do jogo. Então, agora não estamos mais apenas mudando propriedades, estamos realmente respondendo às coisas que acontecem dentro de um jogo. E agora, só porque é uma coisa muito divertida de se fazer, o que vamos fazer é usar o que temos até agora. Vou fazer com que uma propriedade booleana se mova para cá. E eu vou perguntar, bem, se mover é igual a falso, então eu realmente quero fazer o seguinte. Eu então quis, antes de tudo, transformar a mudança em realidade. E então eu quero dar uma volta aqui. Eu é igual a um e então faremos dez e faremos um, e então faremos. E o que faremos aqui é esperar 1 s. E então eu realmente quero dizer minha parte dessa posição. E então eu quero mudar sua posição. Então, vamos simplesmente usar mais igual. Digamos que mais seja igual e, em seguida, diga menu vetorial de três pontos e , em seguida, apenas um zeros, zeros. Então, mais uma vez, vamos movê-lo para a direção X em um n no final. Depois que isso for loop terminar, queremos dizer que mover é igual a falso caso contrário, nunca poderemos reiniciá-lo basicamente. E então vai funcionar, não vai funcionar basicamente a ideia geral, mas isso, tudo funcionar basicamente a ideia geral, mas isso, bem, se fizermos isso, agora, quando tocarmos a peça, ela começará a se mover para a direção x, dez blocos por 10 s, e então ela vai parar e então podemos realmente movê-la novamente. Então, vamos ver por uma questão de discussão aqui, certo? Então, nada deveria acontecer tão bem. Eu toquei isso depois de 1 s. Você pode ver como ele começa a se mover. Agora eu não sei o que vai acontecer quando ele chegar aqui nesta plataforma de spawn. Na verdade, estou muito, Oh, o que vai acontecer? E isso vai parar. Agora está parado. E eu posso tocá-lo novamente e ele continuará se movendo. Como você pode ver. Isso está claro, não é? Porque é feito de novo. E se eu tocá-lo novamente depois de um segundo, você poderá vê-lo contínuo. Então isso é muito, muito legal. Isso é uma coisa incrível que está basicamente funcionando aqui, neste caso, é na verdade um exemplo de como você pode responder a algo que está acontecendo em vez do mundo. Para resumir, um evento é anexado a um determinado objeto. E se esse objeto, se esse evento for acionado, dependendo do que acontece, você pode realmente conectar uma função a ele e chamar essa função toda vez que esse evento específico for capturado. No caso do evento Touched, por exemplo, isso realmente permite que você agora responda às coisas que o jogador possa fazer, insira o mundo e faça certas coisas com ele. Bem, isso vai ser o fim desta palestra aqui. Espero que você tenha achado isso útil e aprenda algo novo. Nos vemos na próxima palestra. Então, sim. 23. (Roblox) Criando instâncias a partir de scripts: Tudo bem, vamos continuar com os obstáculos básicos aqui para o curso Roblox. E nesta palestra, vamos dar uma olhada na geração de novas peças. Então, o que significa gerar novas peças? Bem, vamos gerar corações por meio de scripts. Então, primeiro de tudo, nos servidores de scripts do servidor, vamos criar um novo script e vamos chamá-lo de 09 dash spawning. Que tal isso? E chamaremos isso de objetos de desova. Aí está. E o que faremos é simplesmente gerar um novo objeto. Então, vamos apenas gerar novas peças. E, antes de tudo, vamos fazer isso no próprio roteiro. E então faremos isso em contato daqui a pouco. Então, como criaríamos um novo porto? Bem, vamos criar uma peça local e chamá-la de nova parte. E isso vai ser uma nova peça, como podemos criá-la? Vamos dizer exemplo, e você pode ver que ele já sugere isso para nós. Podemos preencher isso automaticamente pressionando a tecla Tab new. E então, dentro daqui, temos que pegar o nome da classe. Então, temos que colocar o nome da classe como uma string assim que eu começar a digitar as aspas, você pode ver que podemos realmente escolher, bem, muitas classes diferentes que existem aqui. Assim, podemos adicionar um novo controlador de ar, um novo vetor de três valores, novo script de módulo, se assim escolhermos. Mas, no nosso caso, queremos um novo coração. Nesse caso, vamos escolher apenas uma nova peça. E o que aconteceria se eu fizesse isso? Vamos jogar e ver o que acontece. E o que você descobrirá é que, bem, nada realmente acontece. Vamos ver. Não há, não há peças novas. Então, nada realmente aconteceu porque essa parte, nesse caso, meio que não foi criada em lugar nenhum. Assim, podemos alterar as propriedades dessa peça. Então, podemos dizer, por exemplo, que o nome é igual a uma nova parte aqui, certo? Então, agora nós lhe demos um novo nome e podemos até mudar de posição, certo? Podemos dizer que a posição agora é o vetor três novo e digamos 0150 ou algo parecido. E também queremos ancorá-lo, certo? Então, vamos apenas fazer essa âncora. E agora, em teoria, se tudo isso estiver bem, então devemos vê-lo pairando aproximadamente acima do spawn. E você não pode ver nada. E se olharmos no espaço de trabalho, você também pode ver que minha nova parte não é, não faz parte disso, porque na verdade também precisamos definir os pais. Isso é extremamente importante. Então, ser pai, literalmente, é apenas a ideia se você olhar para o explorador aqui, mas para o roteiro de referência ou para a referência e todos os meus outros scripts. O pai disso são os servidores de scripts do servidor. Então você acabou de ver que esse é o relacionamento. Você também pode ver o pai aqui. E se entrarmos no espaço de trabalho, você poderá ver a microparte, essa parte principal é o espaço de trabalho. E se você entrar na placa base, se você descer mais um pouco, a textura aqui, aquela mãe, é a placa base. Quais placas de base? O pai é o espaço de trabalho. Essa é a ideia geral. Isso realmente não deve ser nada confuso. Basicamente, mostra a estrutura hierárquica do explorador, e é basicamente isso. E agora, se dissermos nova parte, pai é igual ao espaço de trabalho de pontos do jogo. De repente, estamos configurando-o para o espaço de trabalho. E agora vamos ver se podemos realmente ver nossa nova parte. E o que você vai descobrir de repente, aí está, aí está nossa nova peça. Se entrarmos no espaço de trabalho, veremos uma nova porta, exatamente com o mesmo nome que demos a ela aqui. E nós o geramos completamente por meio de um script. E geralmente esse é sempre o pedido que você deseja receber. Então, basicamente, você quer criar o novo objeto, então você quer definir algumas das variáveis aqui, certo? Então, vamos mudar as propriedades. E então isso é sempre importante. Queremos definir o pai, certo? E isso é algo muito, muito importante que queremos colocar aqui como pai. Caso contrário, ele não será exibido de forma alguma. Agora, e se fizéssemos algo interessante, certo? E se tivéssemos que começar o evento Touched, certo? Então, estamos fazendo a mesma coisa aqui, mas em vez de se mover, ele realmente fará algo diferente. Então, o que faremos é simplesmente copiar isso e eu vou apenas comentar isso porque bem, nesse caso, eu realmente não quero que a coisa esteja conectada a outra coisa. Vamos fazer isso na desova. Então, vamos gerar apenas um objeto. E então vamos dizer, bem, você sabe o que vamos fazer, em vez de movermos, realmente geraremos algo. Então, no evento Touched, quando estávamos tocando minha parte interessante, agora quero que novas portas sejam criadas. Então, estamos apenas criando um Newport local e podemos fazer quase a mesma coisa que este, certo? Podemos apenas dizer, Ei, em Newport, e vamos chamar isso, vamos chamar isso de outro Newport. E vamos colocar um 015. Vamos telefonar e, na verdade, eu gostaria de algo como 20 e, nesse caso, não vou fazer com que seja ancorado. E então vamos realmente colocar isso, empurrar isso um pouco para trás. 525, tudo bem? E ainda precisamos associá-lo ao espaço de trabalho. E também adicionaremos uma pequena função de peso aqui, digamos meio segundo, porque, caso contrário, ficaremos inundados com peças novas e novas, com um pequeno atraso aqui. Mas agora o que isso deve fazer é, enquanto eu ficar na minha parte legal, certo, vai colocar novas peças. Então, vamos ver se isso faz qualquer coisa, mas tenho certeza de que funcionará. Mais uma vez, temos nossa parte que tínhamos antes. E se pudéssemos pular sobre isso, você pode ver, de repente, que eles podem ver. E agora você pode se perguntar: Espere, por que isso gerou tantos? Nós fizemos isso especificamente para que a função de peso estivesse lá. Então, se eu insistisse nisso, mas para que você possa ver que não está estragando nada. E se eu me mudasse e você pudesse ver que está funcionando. E a razão, é claro, é que o evento Touched, nesse caso, é na verdade chamado para cada parte, certo? Então, basicamente, estamos dizendo que nem importa qual a parte que está tocando nossa microparte aqui. Para cada um deles, estamos criando uma nova peça. E vimos anteriormente que o player é feito de pequenas partes diferentes. Portanto, isso vai ser chamado de uma quantidade insana de tempo. Então, para resumir rapidamente, quando geramos uma nova peça, nesse caso, podemos criar ponto novo e importante neste caso. Ou também podemos gerar quase qualquer outra coisa. Podemos gerar uma série de tipos diferentes de classes, como elas são chamadas. Eles estão basicamente dizendo, ok, que tipo de peça ou que tipo de objeto é esse? No nosso caso, só queremos transportar e existem outros, certo? O local de desova tem sua própria classe, coisas assim. Então, também poderíamos gerar essas coisas. No nosso caso, estamos apenas nos limitando às partes neste momento. Podemos então alterar as propriedades. E então é muito importante que definamos o pai da nova parte que acabamos de criar no espaço de trabalho de pontos do jogo, caso contrário, ela não será exibida. E no final, vimos que também podemos conectar isso ao evento Touched, o que é realmente incrível. Então, agora estamos gerando coisas quando estamos realmente interagindo com o mundo. Muito legal, mas isso vai acabar com esta palestra aqui. Espero que tenham achado esse desodorante útil e , no novo, vejo todos vocês na próxima palestra. Então, sim. 24. (Roblox) Clique no detector: Tudo bem, vamos continuar com o Robo space X aqui, seguir o curso de livros de regras e, nesta palestra, falaremos sobre detecção de cliques. O que isso poderia ser? Bem, bem, vamos criar um novo script no serviço de script do servidor. E chamaremos isso de detecção de cliques de dez e traços. E isso vai ser muito interessante. Então, detecção de cliques, o que isso significa? Bem, você provavelmente já jogou um ou dois jogos em que conseguiu clicar em algo. E isso é exatamente o que faremos também. Então, vamos apenas criar uma nova peça no espaço de trabalho. Primeiro de tudo, vamos criar uma nova peça aqui, pegamos isso e vamos dimensioná-la um pouco, só para sabermos que essa é uma parte diferente. Na verdade, vamos fazer isso 55,5. Aí está. E então também vamos colorir de forma um pouco diferente. Vamos fazer isso. Azul é meio bom, mas vamos torná-lo um pouco mais azul. Sim, aí está. Também fazemos isso ancorado para que continue flutuando no ar assim e eu realmente estou bem com isso. Então, agora temos uma porta flutuante e vamos renomeá-la para clicker. E o que essa parte precisa é que ela realmente precisa de um subobjeto. Então, vamos clicar nesse sinal aqui. E você pode até ver se o uso frequente detector de cliques é exatamente o que precisamos acrescentar a isso. E o detector de cliques tem apenas algumas coisas, a saber, a distância máxima de ativação. Falaremos sobre isso em apenas um momento. Mas agora temos um detector de cliques nisso. O que queremos fazer é realmente obter isso como uma variável. Então, vamos pegar o detector de cliques, e isso é uma variável. E agora vamos para o ponto do jogo, ponto do espaço de trabalho. E então precisamos tentar encontrar o clicker. Então, vamos usar a parte do clicker. E então, como o detector de cliques aqui é um objeto secundário do clicker, podemos realmente obter o detector de cliques, como você pode ver. Incrível. Agora temos o detector de cliques aqui, e isso se refere a esse detector de clipes em particular. E agora podemos simplesmente criar uma nova função. Então, vamos criar uma nova função ao clicar. E também colocaremos o player porque na verdade é isso que vamos conseguir para a função, certo? Quando você clica em algo, na verdade, pegamos o jogador real que clica nisso. Então, primeiro de tudo, vamos imprimir esse player. Clique em Eu e depois imprima o player, só isso é tudo o que vamos fazer. E como conectamos isso? Bem, mais uma vez, o detector de cliques neste caso tem certos eventos aqui, certo? Então nós temos, e na verdade temos alguns. Então, destruidores, esses são eventos normais, mas também há evento de clique com o mouse e o mouse, o mouse sobre sair e o evento de clique com o botão direito. E então, eu acredito que esses são os principais. E isso é muito incrível. Na verdade. Vamos usar o evento mouseClicked mais uma vez usando connect here. E então podemos simplesmente colocar o método onClick dentro dele sem os parênteses. Então, nós só queremos passar isso assim. E então, quando clicarmos nisso, vamos realmente executar essa função. Essa é a mesma ideia que vimos anteriormente no evento Touched, onde conectamos uma função embutida aqui. Acabamos de criar a função aqui. Mas, neste caso, criamos a função antes e depois a colocamos lá. É a mesma ideia. Agora, se for esse o caso, então vamos jogar e quando realmente vamos até lá. Então, a primeira coisa que você poderá ver é que quando eu passo o mouse sobre isso, você pode ver que ele se transforma em uma mão porque, bem, isso agora é clicável. Se eu clicar com o botão esquerdo, você pode ver esse jogador clicar na câmera. Então, de repente, o servidor fica tipo, sim, o jogador clica nesse detector de clipes em particular. Então isso é realmente incrível, porque agora, de repente , podemos interagir com o jogo em um nível totalmente diferente. Nesse caso, há realmente uma segunda maneira fazer isso de forma viável. Ou seja, você pode adicionar um script ao próprio clicker. Então você pode chamar isso de script de clickers, digamos, certo. E então vamos pegar a mesma coisa que temos aqui. E vamos adicionar isso ao script aqui. Agora esse é o detector de cliques, mas podemos realmente fazer algo diferente. Podemos dizer roteiro. Isso é levar nosso script para dentro de nossa hierarquia. E eu vou dizer pai. E então vamos dizer detector de cliques porque nesse script, certo, vamos até o pai, que é o clicker, e depois clicaremos na textura. Isso também funcionará. Então, se eu fosse, digamos, vamos realmente comentar isso, porque é um pouco melhor se fizermos isso. Lá vamos nós. Então, isso é comentado e, em seguida, temos o script do clicker como filho do clicker. E também podemos fazer isso. E vamos ver, em teoria, isso ainda deveria funcionar. E se formos até aqui, você pode ver que ainda estamos obtendo essa saída e isso às vezes pode ser melhor. Então, antes, é claro, colocamos tudo no serviço de script do servidor. Portanto, pode fazer sentido realmente ter o script abaixo da nossa parte do clicker. Porque talvez se duplicássemos isso, e então tivéssemos um segundo aqui. Agora, este também funciona sem que eu precise fazer nada. Agora, existem dois scripts diferentes e, claro, agora surge o problema de que você precisa acompanhar qual script é qual e tudo isso. Mas, independentemente disso , é meio legal. Você também pode ter esse script abaixo da parte real. Isso não é o principal. É claro que o principal é a detecção de cliques em si, que é outra forma de você interagir com o mundo agora e agora podemos usar o que você aprendeu até agora, certo? Movendo coisas, enviando a posição e você pode tornar algo clicável e mudar de posição, por exemplo, para a direita. Então, só para fins de argumentação, eu criei algo aqui que pode ser meio interessante. Então, se eu jogar isso e vamos, eu vou te mostrar. Então, se eu for até aqui, certo, temos esse cubo vermelho no topo. E se eu clicar nesse, o cubo vermelho passa para cima. E se eu clicar no botão esquerdo , ele volta para trás. Então, basicamente, apenas uma maneira de mudar a posição desses cubos específicos. Isso é uma coisa muito legal. Agora, na verdade, não vou mostrar o código. O código estará disponível para que você possa baixá-lo e baixar o arquivo Excel com essa parte móvel específica exibida nele. O que eu diria é que, antes de tudo, tente criar isso sozinho. E se você puder fazer isso, seria absolutamente incrível. Se você estiver preso, você sempre pode dar uma olhada. São basicamente dois cliques aqui no botão esquerdo e no direito. E são dois roteiros. No entanto, os scripts são literalmente exatamente os mesmos. Portanto, pode haver uma maneira de condensar isso em um script por enquanto, apenas tentando ver se você consegue descob