許多電腦科學或遊戲開發中的事物經常會重複。例如,一個應用程式可能每幾秒更新一次內容,或者遊戲可能每天給予玩家獎勵,只要他們登錄。要實現這種行為,程式設計師經常使用 迴圈。
在電腦科學中,迴圈是一種重複執行一組指令的編碼模式,通常直到滿足特定條件為止。為了練習這個,你將編寫一個改變顏色的零件,並無限次運行。後續的課程將會展示如何停止迴圈的運行。
設置零件和腳本
使用任何 Roblox 專案來進行此練習。完成後,這個零件可以用來裝飾環境。
創建一個具有描述性名稱的新零件。本課程使用 LoopingPart。
在 ServerScriptService 中,添加一個名為 LoopingScript 的新腳本。
在腳本中,刪除 Hello World,並寫下一個 註解,說明此腳本的目的。
-- 每幾秒改變 LoopingPart 的顏色
使用變數來儲存零件
變數除了可以儲存字串之外,還可以持有對其它物件的參考。例如,當一個腳本知道某個零件的參考時,該腳本可以改變它。
與其不斷輸入 workspace.NameOfYourPart,不如將整個行儲存到當地變數中。當地變數是通過輸入 local 和變數名稱來創建的。
例如:local nameOfVariable。
在註解下方,通過輸入 local loopingPart 創建一個當地變數。
-- 每幾秒改變 LoopingPart 的顏色local loopingPart將變數設置為迴圈零件,通過在同一行輸入 = workspace.LoopingPart。請記住,= 運算符會將變數的值設為其右側的內容。
-- 每幾秒改變 LoopingPart 的顏色local loopingPart = workspace.LoopingPart
While 迴圈
在創建改變顏色的零件的 while 迴圈之前,值得解釋一下它的語法。while 迴圈有三個組成部分:
- while 關鍵字。
- 總是在關鍵字後的條件。
- 在 do 和 end 關鍵字之間的指令。
在迴圈中,條件可以是各種邏輯語句。一些例子可能是兩個數字是否相同。如果條件為真,則迴圈將運行。
請注意下面的範例中,條件為真,這意味著這個迴圈將永遠運行。在後面的課程中,您將編寫特定的條件來停止運行。
while true doprint("這個迴圈正在運行")end
編寫 while 迴圈
接下來,您將為改變顏色的零件設置 while 迴圈。
在下一行輸入 while true do。然後,按 Enter 以自動完成並添加 end 這個單詞。
-- 每幾秒改變 loopingPart 的顏色local loopingPart = workspace.LoopingPart-- 迴圈代碼while true doend
在迴圈中添加代碼
在創建 while 迴圈後,可以添加指令以隨時間改變零件的顏色。在迴圈內,為每種顏色添加一行代碼。每種顏色將使用 RGB 值,這是一種在電腦科學中以數字方式存儲顏色的方法。
在 while true do 和 end 之間,將零件的 Color 屬性設置為 Color3.fromRGB()。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()end可以通過在 Studio 中使用顏色選擇器來設置顏色。為此,左鍵單擊 () 內的 fromRGB。然後,單擊顏色輪圖標。一旦您獲得所需的顏色,按 OK 以自動將顏色值添加到代碼中。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)end
讓腳本等待
如果您現在添加第二行改變顏色的代碼,它會如此迅速地改變磚的顏色,以至於您可能甚至無法看到第一種顏色的經過。為了讓腳本在運行下一行代碼之前等待,使用 task.wait() 函數。
在更改磚顏色後的行上,輸入 task.wait(3)。放置在 () 內的任意數字是腳本將等待的秒數。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)end在等待函數下,重複相同的過程添加新顏色。最後再加上一個等待函數。
while true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end測試代碼,看看顏色是否變化。
故障排除說明
此時,如果顏色變化的部分未按預期工作,可以嘗試以下其中之一。
問題:顏色被跳過
- 確保每個顏色變化之間有一個等待函數,特別是在最後一行上。
- 檢查所有顏色變更和等待代碼是否位於 while true do 和 end 區域之內。
問題:部分仍為灰色或未按預期改變顏色
- 確保所有 RGB 值都有從 0 到 255 的數字,並且是整數或小數,以逗號分隔。
- 等待函數 () 內的數字應該大於 1。如果等待時間太短,您可能看不到該顏色。
完整的顏色迴圈部分腳本
-- 創建一個變數來存儲該零件local loopingPart = workspace.LoopingPart-- 迴圈代碼while true do-- 改變 loopingPart 的顏色loopingPart.Color = Color3.fromRGB(82, 227, 255)-- 等待 3 秒再執行下一個指令task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end
摘要
迴圈是大多數電腦語言中的一個常見元素。它們用於重複指令,有時直到滿足特定條件為止。在本文中,while 迴圈用於無限次重複指令。要創建一個永遠重複的 while 迴圈,使用下面的語法,並確保指令位於 do 和 end 關鍵字之間。
while true do-- 指令end