参数练习 - 按钮

*此内容使用人工智能(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)

解决您的代码

问题:桥梁已经结实当游戏开始时。 确保零件牢固,不要碰到任何东西。零件可能会碰到某些东西,例如地形或其他部分,并且会导致按钮Pressed() 按钮意外地触发。 问题:您在输出窗口中获得一个错误,说“桥梁不是工作区的有效成员” 检查以下内容:

  • 为你的桥梁命名。你脚本中的桥梁必须以正确的方式命名,就像在 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)