致命的熔岩

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

腳本入門 中,您學會了如何在遊戲中隨時間進行更改。如果您想根據用戶行為進行更改呢?在本教程中,您將學習如何製作一個致命的熔岩地板,當用戶踩上去時會殺死他們。

設置

您需要在您的世界中放置致命的熔岩。如果您遵循了 腳本入門 課程,熔岩地板將很好地填補消失平台所覆蓋的空隙。

  1. 插入一個 Part 並將其移動到您的世界中的適當位置。將其命名為 LavaFloor

  2. 調整大小以覆蓋包圍空間的地板。

  3. 通過將 Material 屬性設置為 Neon 並將 Color 設置為橙色陰影,使地板看起來更像熔岩。

  4. LavaFloor 部件中插入一個 Script 並將其重命名為 Kill

  5. 刪除默認代碼並為熔岩創建一個變量。

    local lava = script.Parent

連接到事件

使用 事件 來檢測用戶何時觸碰熔岩。每個部件都有一個 Touched 事件,當某物觸碰它時會觸發。您可以 連接 到此事件,以便在其觸發時運行一個函數。

  1. 聲明一個名為 kill 的新函數。

  2. 使用點來訪問熔岩對象上的 Touched 事件,就像屬性一樣:lava.Touched

  3. Touched 事件上調用 Connect 函數,將 kill() 作為觸碰部件時要調用的函數。

    local lava = script.Parent
    local function kill()
    end
    lava.Touched:Connect(kill)

您在 kill 函數中編寫的任何代碼現在都會在某物觸碰熔岩時運行。請注意,Connect 函數使用的是 冒號,而不是點 - 此時不必擔心為什麼,只需記住這個區別。

獲取觸碰的部件

要殺死用戶,函數需要與該用戶相關聯的對象。部件的 Touched 事件可以提供觸碰它的“其他部件”——但只有在您通過將其設置為函數的 參數 來請求它時。

參數是函數在被調用時預期接收的定義。參數可以像任何其他變量一樣在函數中使用。您可以通過在調用函數時將其包含在括號中來將信息傳遞給參數。參數在函數的第一行的括號中定義。為 kill 函數創建一個名為 otherPart參數

local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)

當調用 kill 函數時,otherPart 參數將表示觸碰熔岩地板的部件,您在函數中編寫的代碼將能夠使用它。

角色和人形

當用戶觸碰熔岩時,Roblox 可以檢測到觸碰它的用戶的具體身體部位,例如左腿或右腳。這個部件在用戶的 Character 模型中,該模型包含構成用戶在遊戲中化身的所有對象,包括:

  • 用戶的各個身體部位,如頭部、四肢和軀幹。
  • 用戶穿著的任何衣物和配飾。
  • Humanoid,一個特殊對象,包含許多與用戶相關的屬性,包括用戶的健康。
  • 控制用戶移動的 HumanoidRootPart。

如前所述,任何觸碰熔岩的身體部位都是 Character 模型的一部分,因此您可以使用 otherPart.Parent 獲取該角色的引用。創建一個變量來存儲觸碰熔岩地板的部件的父級。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)

從角色模型中,您需要獲取 Humanoid 對象以殺死用戶。您可以使用 FindFirstChild() 函數來做到這一點——只需將您要查找的對象的名稱傳遞給它,它會提供在該對象中找到的第一個匹配子項。對 partParent 變量調用 FindFirstChild(),以 "Humanoid" 作為要查找的子項,並將結果存儲在名為 humanoid 的新變量中。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)

檢查人形

您可以使用 if 語句輕鬆檢查是否找到了 Humanoid。if 語句中的代碼僅在第一行定義的條件為真時運行。

有各種 運算符 可用於構建更複雜的條件,您將在未來的課程中遇到 - 現在,只需將 humanoid 變量放在那裡。創建一個 if 語句,將 humanoid 作為條件。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)

設置角色健康

現在已檢查 Humanoid,可以更改其屬性。如果您將其 Health 屬性設置為 0,則相關的 Character 會死亡。在 if 語句的主體中,將 humanoid 的 Health 屬性設置為 0。

local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)

這樣,您的熔岩地板就完成了!測試您的遊戲,您應該會發現致命的熔岩在接觸時成功殺死了用戶。嘗試將您的熔岩用作障礙賽中的額外挑戰,或作為世界的邊界。

最終代碼

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。