Veel dingen in computerwetenschappen of game-ontwikkeling herhalen zich vaak. Bijvoorbeeld, een app kan inhoud in een feed elke paar seconden bijwerken, of een spel kan spelers elke dag dat ze ingelogd zijn een prijs geven. Om dit gedrag te bereiken, gebruiken programmeurs vaak lussen.
In de computerwetenschappen is een lus een codepatroon dat een set instructies herhaalt, vaak totdat aan een specifieke voorwaarde is voldaan. Om dit te oefenen, ga je een onderdeel coderen dat kleuren oneindig verandert. Latere lessen zullen laten zien hoe je het lussen kunt stoppen.
Stel het onderdeel en script in
Gebruik een willekeurig Roblox-project voor deze oefening. Wanneer je klaar bent, kan dit onderdeel worden gebruikt als een manier om een omgeving te versieren.
Maak een nieuw onderdeel met een beschrijvende naam. Deze les gebruikt LoopingPart.
Voeg in ServerScriptService een nieuw script toe met de naam LoopingScript.
Verwijder in het script Hello World en schrijf een opmerking die het doel van dit script aangeeft.
-- Verandert de kleur van LoopingPart elke paar seconden
Gebruik variabelen om een onderdeel op te slaan
Variabelen kunnen ook verwijzingen naar objecten bevatten naast strings. Bijvoorbeeld, wanneer een script de verwijzing naar een onderdeel kent, kan het script dit veranderen.
In plaats van workspace.NameOfYourPart keer op keer te typen, kan die hele regel in een lokale variabele worden opgeslagen. Lokale variabelen worden gemaakt door local te typen en vervolgens de naam van de variabele.
Bijvoorbeeld: local nameOfVariable.
Maak onder de opmerking een lokale variabele door local loopingPart te typen.
-- Verandert de kleur van LoopingPart elke paar secondenlocal loopingPartStel de variabele in op het lussende onderdeel door = workspace.LoopingPart op dezelfde regel te typen. Vergeet niet dat de = operator de waarde van een variabele instelt op wat er aan de rechterkant van staat.
-- Verandert de kleur van LoopingPart elke paar secondenlocal loopingPart = workspace.LoopingPart
While-lussen
Voordat je de while-lus voor het kleurveranderende onderdeel maakt, is het de moeite waard om de syntaxis ervan uit te leggen. Een while-lus heeft drie componenten:
- Het while sleutelwoord.
- Een voorwaarde, altijd na het sleutelwoord.
- Instructies, tussen de do en end sleutelwoorden.
In lussen kunnen voorwaarden een verscheidenheid aan logische uitspraken zijn. Enkele voorbeelden kunnen zijn of twee getallen hetzelfde zijn. Een lus zal draaien als de voorwaarde waar is.
Let op in het onderstaande voorbeeld, de voorwaarde is waar, wat betekent dat deze lus voor altijd zal draaien. In latere lessen ga je specifieke voorwaarden coderen die stoppen.
while true do
print("Deze lus draait")
endCode een while-lus
Vervolgens ga je de while-lus voor het kleurveranderende onderdeel instellen.
Typ op de volgende regel while true do. Druk vervolgens op Enter om automatisch de woorden end toe te voegen.
-- Verandert de kleur van loopingPart elke paar secondenlocal loopingPart = workspace.LoopingPart-- Lussende Codewhile true doend
Voeg code toe in de lus
Met de while-lus gemaakt, kunnen instructies worden toegevoegd om de kleur van het onderdeel in de loop van de tijd te veranderen. Voeg binnen de lus een regel code toe voor elke kleur. Elke kleur gebruikt RGB-waarden, een manier om kleuren als getallen op te slaan in de computerwetenschappen.
Stel tussen while true do en end de Color-eigenschap van het onderdeel in op Color3.fromRGB().
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()endDe kleur kan worden ingesteld met een kleurenkiezer in Studio. Om dit te doen, klik je met de linkermuisknop binnen de () naast fromRGB. Klik vervolgens op het kleurwielpictogram. Zodra je een gewenste kleur hebt, druk je op OK om automatisch de kleurwaarde in de code toe te voegen.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)end
Laat het script wachten
Als je nu een tweede regel van kleurveranderende code toevoegt, zou het de kleur van de baksteen zo snel veranderen dat je de eerste kleur misschien niet eens ziet. Om het script te laten wachten voordat de volgende regel code wordt uitgevoerd, gebruik je een task.wait() functie.
Typ op de regel na het veranderen van de baksteenkleur task.wait(3). Het getal dat binnen de () staat, is het aantal seconden dat het script zal wachten.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)endOnder de wachtfunctie herhaal je hetzelfde proces van het toevoegen van een nieuwe kleur. Eindig het met een extra wachtfunctie.
while true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)endTest de code en kijk of de kleuren veranderen.
Probleemoplossingsnotities
Op dit punt, als het kleurveranderende onderdeel niet werkt zoals bedoeld, probeer dan een van de volgende opties hieronder.
Probleem: Kleuren worden overgeslagen
- Zorg ervoor dat je een wachtfunctie tussen elke kleurverandering hebt, vooral op de laatste regel.
- Controleer of alle kleurveranderings- en wachtcode tussen de while true do en end secties staat.
Probleem: Onderdeel is nog steeds grijs of verandert niet zoals bedoeld
- Zorg ervoor dat alle RGB-waarden getallen van 0 tot 255 hebben, hele of decimale getallen zijn, en gescheiden zijn door komma's.
- De getallen binnen de () van een wachtfunctie moeten groter zijn dan 1. Het is mogelijk dat als een wacht te kort is, je die kleur misschien niet ziet.
Voltooi het kleurveranderende onderdeel script
-- Maak een variabele om het onderdeel op te slaan
local loopingPart = workspace.LoopingPart
-- Lussende Code
while true do
-- Verandert de kleur van loopingPart
loopingPart.Color = Color3.fromRGB(82, 227, 255)
-- Wacht 3 seconden voor de volgende instructie
task.wait(3)
loopingPart.Color = Color3.fromRGB(177, 52, 255)
task.wait(3)
endSamenvatting
Lussen zijn een veelvoorkomend element in de meeste programmeertalen. Ze worden gebruikt om instructies te herhalen, soms totdat aan specifieke voorwaarden is voldaan. In dit artikel wordt de while-lus gebruikt om instructies voor altijd te herhalen. Om een while-lus te maken die voor altijd herhaalt, gebruik je de onderstaande syntaxis, zorg ervoor dat je instructies tussen de do en end sleutelwoorden opneemt.
while true do
-- Instructies
end