按鈕可由玩家使用來解鎖新區域、給予點數並揭示寶藏。每當玩家觸碰按鈕時,應該給予一些回饋,讓玩家知道它正在被互動,例如變更顏色或發出聲音。
在這個例子中,按鈕將用於啟用橋樑。當按鈕被按下時,它會變綠,玩家就能使用橋樑。如果玩家沒有按下按鈕,他們在嘗試走過橋時就會掉下橋。
建立橋樑
先設置橋樑。
在遊戲中創建一個區域,玩家需要一座橋。
為橋創建一個零件,並將其重命名為橋。
在屬性窗口中選擇橋:
- 將 透明度 變更為 .5。對於透明度,0 可見,1 不可見。
- 檢查 錨 。
- 卸下 可以碰撞 。
測試遊戲,橋應該是迷霧的,人們還不能在上面走路。
創建按鈕
現在橋樑已設置,創建按鈕。
- 創建一個名為 按鈕 的新零件。
- 將按鈕顏色變更為紅色。
- 錨定 按鈕。
- 移動按鈕,使其稍微漂浮,不觸碰任何東西。這是為了確保 Touched 事件不會誤觸發。
讓按鈕互動
這次,你不會使用 Touched 事件來創建陷阱,而是使用它來創建一個按鈕,使橋可用。要使橋樑可碰撞,請在玩家按下按鈕時運行的自訂函數中使用代碼 bridge.CanCollide = true 。你知道完成下一步所需的其他一切。
試著在看代碼解決方案之前先自己弄清楚。
- 插入新的 腳本 到名為 ActivateBridge 的按鈕中。
- 刪除 Hello World 。
- 為橋和按鈕創建變量。
- 創建一個 本地函數 ,當按下按鈕時會執行以下操作:
- 列印 "button touched" 。
- 當觸摸時,變更按鈕的顏色從紅色變為綠色。
- 將橋的透明度變更為 0 以使其可見。
- 使用代碼 bridge.CanCollide = true 使橋橋可用
- 將功能連接到按鈕的 Touched 事件。
- 測試腳本並確保按鈕被觸摸時橋出現。
代碼解決方案以下是一個可能的代碼解決方案
-- 將此腳本插入按鈕
-- 當有物體觸碰按鈕時,轉換為綠色。
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)