按鈕可以被玩家用來解鎖新區域、提供點數和顯示寶藏。每次玩家觸摸按鈕時,應該給一些意見,讓玩家知道與它交互的內容,例如變更顏色或製作聲音。
在這個範例中,按鈕將用來啟動橋樑。當按鈕被按下時,它將變成綠色,玩家就可以使用橋樑。如果玩家沒有按下按鈕,他們將在穿過橋樑時掉落。
製作橋樑
從橋梁開始設置。
在遊戲中創建一個區域,玩家將需要一座橋。
為橋樑建立一個零件並將其重命名為橋樑。
選擇橋樑,在屬性窗口中:
- 將 透明度 變更為 .5。為透明,0 是可見的,1 是隱藏的。
- 檢查 錨定器 。
- 取消選擇 可碰撞 。
測試遊戲,橋樑應該看起來迷幻,人們不能走在上面。
創建按鈕
現在橋樑已設置,創建按鈕。
- 創建名為 按鈕 的新零件。
- 將按鈕顏色變更為紅色。
- 錨定 按鈕。
- 將按鈕移動到漂亮的位置,不要碰到任何東西。這樣可以確認 Touched 事件不會意外地發觸發。
讓按鈕互動
這次,而不是使用 Touched 事件來創建陷阱,您將使用它來創建一個使橋樑可用的按鈕。 要使橋樑可以衝突,請使用 bridge.CanCollide = true 內的代碼 橋樑.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)