參數練習 - 按鈕

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

按鈕可由玩家使用來解鎖新區域、給予點數並揭示寶藏。每當玩家觸碰按鈕時,應該給予一些回饋,讓玩家知道它正在被互動,例如變更顏色或發出聲音。

在這個例子中,按鈕將用於啟用橋樑。當按鈕被按下時,它會變綠,玩家就能使用橋樑。如果玩家沒有按下按鈕,他們在嘗試走過橋時就會掉下橋。

建立橋樑

先設置橋樑。

  1. 在遊戲中創建一個區域,玩家需要一座橋。

  2. 為橋創建一個零件,並將其重命名為橋。

  3. 在屬性窗口中選擇橋:

    • 透明度 變更為 .5。對於透明度,0 可見,1 不可見。
    • 檢查
    • 卸下 可以碰撞
  4. 測試遊戲,橋應該是迷霧的,人們還不能在上面走路。

創建按鈕

現在橋樑已設置,創建按鈕。

  1. 創建一個名為 按鈕 的新零件。
  2. 將按鈕顏色變更為紅色。
  3. 錨定 按鈕。
  4. 移動按鈕,使其稍微漂浮,不觸碰任何東西。這是為了確保 Touched 事件不會誤觸發。

讓按鈕互動

這次,你不會使用 Touched 事件來創建陷阱,而是使用它來創建一個按鈕,使橋可用。要使橋樑可碰撞,請在玩家按下按鈕時運行的自訂函數中使用代碼 bridge.CanCollide = true 。你知道完成下一步所需的其他一切。

試著在看代碼解決方案之前先自己弄清楚。

  1. 插入新的 腳本 到名為 ActivateBridge 的按鈕中。
  2. 刪除 Hello World
  3. 為橋和按鈕創建變量。
  4. 創建一個 本地函數 ,當按下按鈕時會執行以下操作:
    • 列印 "button touched"
    • 當觸摸時,變更按鈕的顏色從紅色變為綠色。
    • 將橋的透明度變更為 0 以使其可見。
    • 使用代碼 bridge.CanCollide = true 使橋橋可用
  5. 將功能連接到按鈕的 Touched 事件。
  6. 測試腳本並確保按鈕被觸摸時橋出現。

代碼解決方案以下是一個可能的代碼解決方案


-- 將此腳本插入按鈕
-- 當有物體觸碰按鈕時,轉換為綠色。
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

解決您的代碼問題

問題:遊戲開始時,橋已經很堅固。: 確保零件被錨定且不會接觸任何東西。零件可能會碰到某些東西,例如地形或其他零件,導致按鈕按下()函數誤發射。 問題:您在輸出窗口中獲得錯誤,說:「橋不是工作區的有效成員」 檢查以追蹤中內容:

  • 您橋樑的命名。您的腳本中的橋樑必須與 Explorer 中的命名相同。
  • part.Touched:Connect(buttonPressed) 是在 buttonPressed() 函數之外。

可選代碼挑戰

本課程的腳本也可用於保持玩家不進入特定區域的門。練習您的編碼技能,然後執行以追蹤中操作:

  • 創建門部分。
  • 在門遠處創建按鈕。
  • 在這個課程中變更腳本,使門變得透明,並且玩家無法與它碰撞。

您的版本可能會看起來像這樣:


local button = script.Parent
-- 提醒:將零件、閘的名稱替換為你的項目中的名稱
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- 將變更按鈕變更為紅色,以便向玩家提供反回饋
button.BrickColor = BrickColor.Red() -- 變更此項
-- 使閘門隱形
gate.Transparency = 1
-- 讓玩家能夠穿過閘門
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)