Muitas coisas na ciência da computação ou desenvolvimento de jogos muitas vezes se repetem. Por instância, um aplicativo pode atualizar o conteúdo em um feed a cada alguns segundos, ou um jogo pode recompensar os jogadores com um prêmio todos os dias que eles estiverem conectados. Para alcançar esse comportamento, os coders muitas vezes usam loops .
Na ciência da computação, um loop é um padrão de código que repete um conjunto de instruções, muitas vezes até que uma condição específica seja atendida. Para praticar isso, você vai codificar uma peça que muda as cores indefinidamente. As aulas posteriores mostrarão como parar o looping.
Configurando a Parte e o Script
Use qualquer projeto Roblox para este exercício. Quando terminar, esta parte pode ser usada como uma maneira de decorar um ambiente.
Crie uma nova peça com um nome descritivo. Essa lição usa LoopingPart .
Em ServerScriptService , adicione um novo script chamado LoopingScript.
No script, delete Hello World and write a comentário statementando o propósito deste script.
-- Changes the color of LoopingPart every few seconds
Usando Variáveis para Armazenar uma Peça
Variáveis também podem conter referências a objetos além de caracteres. Por exemplo, quando um script conhece a referência a uma parte, o script pode alterá-la.
Em vez de digitar workspace.NameOfYourPart uma e outra vez, toda essa linha pode ser armazenada dentro de uma variável local. Variáveis locais são criadas ao digitar local e depois o nome da variável.
Por exemplo: local nameOfVariable .
Sob o comentar, crie uma variável local ao digitar local loopingPart.
-- Muda a cor de LoopingPart a cada alguns segundoslocal loopingPartDefina a variável para a peça em looping por digitando = workspace.LoopingPart na mesma linha. Lembre-se de que o operador = define o valor de uma variável para o que estiver à direita dela.
-- Muda a cor de LoopingPart a cada alguns segundoslocal loopingPart = workspace.LoopingPart
Enquanto Loops
Antes de criar o while loop para a peça que muda de cor, vale a pena explicar sua sintaxe. Um while loop tem três componentes:
- A palavra-chave while.
- Uma condição, sempre depois da palavra-chave.
- Instruções, entre as palavras-chave do e end.
Em loops, as condições podem ser uma variedade de declarações lógicas. Alguns exemplos podem ser se dois números são iguais. Um loop será executado se sua condição for verdadeira.
Nota na amostra abaixo, a condição é verdadeira, o que significa que esse loop vai executar para sempre. Em leções posteriores, você vai codificar condições específicas que param.
while true doprint("This loop is running")end
Código de um Loop de Enquanto
Em seguida, você configurará o while loop para a peça que muda de cor.
Na próxima linha, digite while true do. Em seguida, pressione Enter para autocompletar e adicionar a palavra end.
-- Muda a cor do loopingPart a cada alguns segundoslocal loopingPart = workspace.LoopingPart-- Código de Loopwhile true doend
Adicionando Código ao Loop
Com o while loop criado, instruções podem ser adicionadas para alterar a cor da peça ao longo do tempo. Dentro do loop, adicione uma linha de código para cada cor. Cada cor usará valores RGB, uma maneira de armazenar cores como números na ciência da computação.
Entre while true do e end, definir a propriedade de cor da peça para Color3.fromRGB().
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()endConfigurar a cor pode ser feito usando um selecionador de cor no Studio. Para fazer isso, clique com o botão esquerdo dentro do () ao lado de fromRGB. Em seguida, clique no ícone de roda de cor. Depois de ter a cor desejada, pressione OK para adicionar automaticamente o valor da cor no código.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)end
Fazendo o Script Esperar
Se você adicionar uma segunda linha de código de mudança de cor agora, isso mudaria a cor do blocotão rápido que você pode não ver a primeira cor passar. Para fazer o script esperar antes de executar a próxima linha de código, use uma função task.wait().
Na linha depois de alterar a cor do tijolo, digite task.wait(3). Se o número colocado dentro do () for o número de segundos que o script vai esperar.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)endSob a função de espera, repita o mesmo processo de adicionar uma nova cor. Termine-o com uma função de espera adicional.
while true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)endTeste o código e veja se as cores mudam.
Notas de Solução de Problemas Neste ponto, se a parte de mudança de cor não funcionar como deveria, tente uma das seguintes abaixo. Problema : Cores são pular
Certifique-se de que você tem uma função de espera entre cada mudança de cor, especialmente na última linha.
Verifique se todas as alterações de cor e aguarde código estão entre as seções while true do e end. Problema : A peça ainda está cinza ou não muda a cor como pretendido
Certifique-se de que todos os valores RGB têm números de 0 a 255, são inteiros ou decimais e são separados por vírgulas.
Os números dentro do () de uma função de espera devem ser maiores que 1. É possível que se a espera for muito pequena, você não consiga ver essa cor.
Complete o Script de Peça Loop de Cor
-- Crie uma variável para armazenar a peçalocal loopingPart = workspace.LoopingPart-- Código de Loopwhile true do-- Muda a cor de loopingPartloopingPart.Color = Color3.fromRGB(82, 227, 255)-- Aguarde 3 segundos antes da próxima instruçãotask.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end
Visão Geral
Loop é um elemento comum em muitos idiomas de computador. Eles são usados para repetir instruções, às vezes até que condições específicas sejam atendidas. Neste artigo, o while loop é usado para repetir instruções para sempre. Para criar um while loop que repete para sempre, use a sintaxe abaixo, certificando-se de incluir instruções entre as palavras-chave do e end.
while true do-- Instruçõesend