Molte cose in informatica o nello sviluppo di giochi spesso si ripetono. Ad esempio, un'app potrebbe aggiornare il contenuto in un feed ogni pochi secondi, o un gioco potrebbe premiare i giocatori con un premio ogni giorno in cui sono connessi. Per realizzare questo comportamento, i programmatori utilizzano spesso cicli.
In informatica, un ciclo è un modello di codice che ripete un insieme di istruzioni, spesso fino a quando non viene soddisfatta una condizione specifica. Per esercitarti, programmerai una parte che cambia colori all'infinito. Le lezioni successive mostreranno come fermare il ciclo.
Imposta la parte e lo script
Usa qualsiasi progetto Roblox per questo esercizio. Una volta terminato, questa parte può essere utilizzata come modo per decorare un ambiente.
Crea una nuova parte con un nome descrittivo. Questa lezione utilizza LoopingPart.
In ServerScriptService, aggiungi un nuovo script chiamato LoopingScript.
Nello script, cancella Hello World e scrivi un commento che dichiari lo scopo di questo script.
-- Cambia il colore di LoopingPart ogni pochi secondi
Usa variabili per memorizzare una parte
Le variabili possono anche contenere riferimenti a oggetti oltre alle stringhe. Ad esempio, quando uno script conosce il riferimento a una parte, lo script può cambiarlo.
Invece di digitare workspace.NameOfYourPart più e più volte, quell'intera riga può essere memorizzata all'interno di una variabile locale. Le variabili locali vengono create digitando local e poi il nome della variabile.
Ad esempio: local nameOfVariable.
Sotto il commento, crea una variabile locale digitando local loopingPart.
-- Cambia il colore di LoopingPart ogni pochi secondilocal loopingPartImposta la variabile alla parte ciclica digitando = workspace.LoopingPart sulla stessa riga. Ricorda che l'operatore = imposta il valore di una variabile su ciò che si trova a destra di esso.
-- Cambia il colore di LoopingPart ogni pochi secondilocal loopingPart = workspace.LoopingPart
Cicli while
Prima di creare il ciclo while per la parte che cambia colore, è utile spiegare la sua sintassi. Un ciclo while ha tre componenti:
- La parola chiave while.
- Una condizione, sempre dopo la parola chiave.
- Istruzioni, tra le parole chiave do e end.
Nei cicli, le condizioni possono essere una varietà di affermazioni logiche. Alcuni esempi potrebbero essere se due numeri sono uguali. Un ciclo verrà eseguito se la sua condizione è vera.
Nota nell'esempio qui sotto, la condizione è vera, il che significa che questo ciclo verrà eseguito per sempre. Nelle lezioni successive, programmerai condizioni specifiche che fermano il ciclo.
while true doprint("Questo ciclo è in esecuzione")end
Codifica un ciclo while
Successivamente, imposterai il ciclo while per la parte che cambia colore.
Sulla riga successiva digita while true do. Poi, premi Enter per completare automaticamente e aggiungere la parola end.
-- Cambia il colore di loopingPart ogni pochi secondilocal loopingPart = workspace.LoopingPart-- Codice di Loopingwhile true doend
Aggiungi codice nel ciclo
Con il ciclo while creato, possono essere aggiunte istruzioni per cambiare il colore della parte nel tempo. All'interno del ciclo, aggiungi una riga di codice per ogni colore. Ogni colore utilizzerà valori RGB, un modo di memorizzare i colori come numeri in informatica.
Tra while true do e end, imposta la proprietà Color della parte su Color3.fromRGB().
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()endImpostare il colore può essere fatto utilizzando un selettore di colori in Studio. Per farlo, clicca a sinistra all'interno dei () accanto a fromRGB. Poi, fai clic sull'icona della ruota dei colori. Una volta scelto un colore desiderato, premi OK per aggiungere automaticamente il valore del colore nel codice.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)end
Fai aspettare lo script
Se aggiungi una seconda riga di codice per cambiare colore proprio ora, cambierebbe il colore del mattone così rapidamente che potresti neanche vedere il primo colore passare. Per far aspettare lo script prima di eseguire la riga di codice successiva, utilizza una funzione task.wait().
Sulla riga dopo aver cambiato il colore del mattone, digita task.wait(3). Qualsiasi numero posto dentro ai () è quanti secondi lo script aspetterà.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)endSotto la funzione di attesa, ripeti lo stesso processo di aggiunta di un nuovo colore. Termina con un'ulteriore funzione di attesa.
while true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)endProva il codice e verifica se i colori cambiano.
Note di risoluzione dei problemi
A questo punto, se la parte che cambia colore non funziona come previsto, prova una delle seguenti opzioni.
Problema: I colori vengono saltati
- Assicurati di avere una funzione di attesa tra ogni cambiamento di colore, specialmente nell'ultima riga.
- Controlla che tutto il codice per il cambiamento di colore e la funzione di attesa si trovi tra le sezioni while true do e end.
Problema: La parte è ancora grigia o non cambia colore come previsto
- Assicurati che tutti i valori RGB abbiano numeri da 0 a 255, siano interi o decimali e siano separati da virgole.
- I numeri all'interno dei () di una funzione di attesa dovrebbero essere maggiori di 1. È possibile che se un'attesa è troppo breve, potresti non vedere quel colore.
Script completo per il ciclo di colori
-- Crea una variabile per memorizzare la partelocal loopingPart = workspace.LoopingPart-- Codice di Loopingwhile true do-- Cambia il colore di loopingPartloopingPart.Color = Color3.fromRGB(82, 227, 255)-- Aspetta 3 secondi prima della prossima istruzionetask.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end
Riepilogo
I cicli sono un elemento comune nella maggior parte dei linguaggi di programmazione. Vengono utilizzati per ripetere istruzioni, a volte fino a quando non vengono soddisfatte determinate condizioni. In questo articolo, il ciclo while viene utilizzato per ripetere istruzioni per sempre. Per creare un ciclo while che si ripete all'infinito, utilizza la sintassi qui sotto, assicurandoti di includere le istruzioni tra le parole chiave do e end.
while true do-- Istruzioniend