在 介紹 Roblox Studio 中,你學會了在 Roblox Studio 中創建和操作零件。在這個教學中,你會學會如何應用 指令碼 在零件上,以使平台出現並消失。你可以在平台體驗中使用此功能來跨越時間,挑戰用戶仔細時間他們的跳躍來到另一邊。
設置螢幕
首關閉,您需要一個 零件 來作為平台。製作和移動零件應該對您從 介紹 Roblox Studio 很熟悉。您不需要一個複雜的世界,而是需要一個用戶可以輕鬆跳過的空格。
插入 零件 並將其重命名為 DisappearingPlatform。
將其調整大小,讓使用者可以跳上。
將它移到正確的位置,以便您在測試您的體驗時可以達到它並跳上它。
將 錨定 屬性設為 真 在 屬性 窗口。
插入指令碼
Roblox 中的代碼以 Luau 的語言書寫,你可以將它放在 Explorer 中的各種容器內。如果你將 零件 放在遊戲中,Roblox 會在零件載入到遊戲時執行此語指令碼的代碼。
將鼠標放在 DisappearingPlatform 零件在 Explorer 窗口上,然後按一下 + 按鈕以將新腳本插入平台。將您的新腳本重命名為 1>Disappear1>。
刪除內部的預設代碼。
第一個變數
開始您的脚本的好方法是首先作成平台的 變量 為平台。變量是與價值關聯的 名稱。當變量創建時,它可以再次使用。您可以根據需要變更值。
在 Luau 中,變數為次要值創建如下: local variableName = variableValue。
local 指的是變數只會在指定的腳本區塊中使用。= 指的是設定變數的值。名稱變數通常會以 camel 狀態 來表示。此狀態與第一個字母大寫 1>justLikeThis1> 相同。
Copy the following code to create a 變量 for the platform called platform , where the value is script.Parent .
local platform = script.Parent
消失功能
是時候消滅平台了。最好將特定操作的代碼群組成 函數。 函數是一個名稱的代碼塊,它可以幫助您組織您的代碼並在多個位置使用它,而不用重新編寫它。 在指令碼中創建 函數 並稱為 2>disappear2> 。
local platform = script.Parent
local function disappear()
end
第一行新線 宣告 功能,指示功能的開始,並將它命名為 disappear。功能的代碼在第一行和 end 之間。
括號是為了提供額外資訊,當需要時。你會在後續的課程中學到更多關於將資訊傳送給功能的方法。
零件屬性
當平台消失時,它需要變得隱形,並且使用者需要穿過它 — 但您不能只是摧毀平台,因為它需要稍後重新出現。
零件有各種 屬性 可以在這裡使用。記住,如果您選擇零件並查看 屬性 窗口,您可以查看零件的屬性。
零件可以通過變更 Transparency 屬性變得隱形。透明度可以是 0 與 1 之間的值,其中 1 是完全透明,因此不可見。
CanCollide 屬性決定其他零件 (和用戶) 是否能夠正確通過零件。如果您將其設置為 關閉 ,用戶將掉落通過平台。
就像 script.Parent 一樣,屬性使用 點 存取。值由平等符號指定。
在 disappear 函數中,將平台的 CanCollide 屬性設置為 false 。
在追蹤中一條線上,將 Transparency 屬性設置為 1 。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1end
呼叫函數
您宣告了一個函數後,您可以使用在它的名稱上寫上括號來執行它。例如,disappear()會執行disappear功能。這是稱為呼叫一個函數。
呼叫 指令碼的 disappear 函數。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1enddisappear()按下 播放 按鈕來測試代碼。如果您的代碼工作,平台應該在用戶生成遊戲時消失。
顯示功能
您可以寫一個使平台重新顯示的函數,這使平台重新顯示正確相反的功能。
從指令碼中刪除 disappear() 行。
宣告名為 appear 的新函數。
在功能身體內,將 CanCollide 屬性設為 Transparency 並將 Transparency 。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1endlocal function appear()platform.CanCollide = trueplatform.Transparency = 0end
循環代碼
平台應該一直消失和重新出現,每次變更之間只需要幾秒鐘。 不幸的是,在 while loop 的情況下,您不需要。
一段時間內,程式碼在程式碼內部執行,直到 while 後的 while 仍然是真的。這個特定的程式碼需要永遠執行,因此該語句只能是 true。在指令碼式碼結束時建立一個 2>while true2> 循環。
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
end
切換平台
在 while 循環中,您需要在平台消失後重新出現時,在幾秒鐘內等待代碼。
內置的函數 task.wait() 可以用於此。在括號中,需要等待的秒數:例如 task.wait(3)。
三秒是每個平台狀態之間的合理開始點。
- 在 while 循環中, call the task.wait() 函數,並在 3 在父護符號中。
- 呼叫 disappear 函數。
- 再次呼叫 task.wait() 函數,並且在 3 在父護號中。
- 呼叫 appear 函數。
while true dotask.wait(3)disappear()task.wait(3)appear()end
平台的代碼現在已完成! 測試您的代碼,您應該發現平台在三秒後消失並重新出現。
您可以複製此平台來覆蓋更寬的間隙,但您需要改變每個指令碼的等待時間。否則,平台將在同一時間移除,並且使用者將永遠無法穿越。
最終代碼
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
task.wait(3)
disappear()
task.wait(3)
appear()
end