Muitas coisas na ciência da computação ou no desenvolvimento de jogos costumam se repetir. Por exemplo, um aplicativo pode atualizar o conteúdo em um feed a cada poucos segundos, ou um jogo pode recompensar os jogadores com um prêmio a cada dia em que estão logados. Para realizar esse comportamento, os programadores costumam usar loops.
Na ciência da computação, um loop é um padrão de codificação que repete um conjunto de instruções, muitas vezes até que uma condição específica seja atendida. Para praticar isso, você codificará uma parte que muda de cores indefinidamente. Aulas posteriores mostrarão como parar o looping.
Configurar a parte e o script
Use qualquer projeto do Roblox para este exercício. Quando terminado, esta parte pode ser usada como uma forma de decorar um ambiente.
Crie uma nova parte com um nome descritivo. Esta lição usa LoopingPart.
No ServerScriptService, adicione um novo script nomeado LoopingScript.
No script, exclua Hello World e escreva um comentário declarando o propósito deste script.
-- Muda a cor do LoopingPart a cada poucos segundos
Usar variáveis para armazenar uma parte
Variáveis também podem armazenar referências a objetos além de strings. Por exemplo, quando um script conhece a referência a uma parte, o script pode alterá-la.
Em vez de digitar workspace.NameOfYourPart repetidamente, toda essa linha pode ser armazenada em uma variável local. Variáveis locais são criadas digitando local e, em seguida, o nome da variável.
Por exemplo: local nameOfVariable.
Sob o comentário, crie uma variável local digitando local loopingPart.
-- Muda a cor do LoopingPart a cada poucos segundoslocal loopingPartDefina a variável como a parte em looping digitando = workspace.LoopingPart na mesma linha. Lembre-se de que o operador = define o valor de uma variável para o que está à sua direita.
-- Muda a cor do LoopingPart a cada poucos segundoslocal loopingPart = workspace.LoopingPart
Loops while
Antes de criar o loop while para a parte que muda de cor, vale a pena explicar sua sintaxe. Um loop while tem três componentes:
- A palavra-chave while.
- Uma condição, sempre após a 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.
Observe no exemplo abaixo que a condição é verdadeira, o que significa que este loop será executado para sempre. Nas aulas seguintes, você codificará condições específicas que param.
while true doprint("Este loop está em execução")end
Codificar um loop while
Em seguida, você definirá o loop while para a parte que muda de cor.
Na próxima linha, digite while true do. Em seguida, pressione Enter para completar automaticamente e adicionar a palavra end.
-- Muda a cor do loopingPart a cada poucos segundoslocal loopingPart = workspace.LoopingPart-- Código de Loopingwhile true doend
Adicione código no loop
Com o loop while criado, as instruções podem ser adicionadas para mudar a cor da parte ao longo do tempo. Dentro do loop, adicione uma linha de código para cada cor. Cada cor usará valores RGB, uma forma de armazenar cores como números na ciência da computação.
Entre while true do e end, defina a propriedade Color da parte como Color3.fromRGB().
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()endA definição da cor pode ser feita usando um seletor de cores no Studio. Para fazer isso, clique com o botão esquerdo dentro dos () ao lado de fromRGB. Em seguida, clique no ícone da roda de cores. Depois de escolher uma 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
Faça o script esperar
Se você adicionar uma segunda linha de código que muda a cor agora, ela mudará a cor do bloco tão rápido que talvez você nem veja a primeira cor passar. Para fazer o script esperar antes de executar a próxima linha de código, use a função task.wait().
Na linha após mudar a cor do bloco, digite task.wait(3). Qualquer número colocado dentro dos () é quantos segundos o script irá esperar.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)endAbaixo da função de espera, repita o mesmo processo de adicionar uma nova cor. Termine 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 que muda de cor não funcionar conforme o esperado, tente uma das seguintes soluções abaixo.
Problema: As cores são puladas
- Certifique-se de que você tem uma função de espera entre cada mudança de cor, especialmente na última linha.
- Verifique se todo o código de mudança de cor e espera está entre as seções while true do e end.
Problema: A parte ainda está cinza ou não muda de cor como esperado
- Certifique-se de que todos os valores RGB tenham números de 0 a 255, sejam inteiros ou decimais, e sejam separados por vírgulas.
- Os números dentro dos () de uma função de espera devem ser maiores que 1. É possível que, se uma espera for muito curta, você não veja aquela cor.
Script completo da parte de looping de cores
-- Crie uma variável para armazenar a partelocal loopingPart = workspace.LoopingPart-- Código de Loopingwhile true do-- Muda a cor do loopingPartloopingPart.Color = Color3.fromRGB(82, 227, 255)-- Espera 3 segundos antes da próxima instruçãotask.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end
Resumo
Loops são um elemento comum na maioria das linguagens de computador. Eles são usados para repetir instruções, às vezes até que condições específicas sejam atendidas. Neste artigo, o loop while é usado para repetir instruções para sempre. Para criar um loop while 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