在介绍到脚本中,你学会了如何在体验上随时循环地进行变更。如果你想根据用户行为进行更改,请在本教程中学习如何制作致命的熔岩地板,会在用户踩到它时杀死用户。
设置
你需要在你的世界中放置致命的岩浆。如果你按照脚本编程入门课程的话,岩浆地板会很好地填满消失平台所覆盖的空隙。
插入一个 Part 并将其移入您的世界。命名它为 LavaFloor 。
将其调整,使其覆盖包括空间的地板。
通过将 Material 属性设置为 Neon 和 Color 为橙色阴影设置楼层来让地板更有 lava 的样子。
将 脚本 插入 LavaFloor 部分,并将其重命名为 Kill。
移除默认代码,创建一个变量为岩浆。
local lava = script.Parent
连接到事件
使用一个 事件 来检测用户触摸岩浆。每个部分都有一个 Touched 事件,该事件会在某个触摸它时触发。您可以将 连接 到此事件以在它触发时执行函数。
声称一个名为 kill 的新函数。
使用 dot 访问岩浆对象上的 Touched 事件,就像一个属性:lava.Touched 。
调用 Connect 函数在 Touched 事件上,通过传递 kill 函数。
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
您在 kill 函数中写代码时,现在将会每当有东西触摸到岩浆。注意,您使用 colon 为 Connect 函数,它不是 Connect 一个点 - 请记住为什么在这个时候,只要记住区别。
获得触摸部件
要杀死用户,函数需要与该用户关联的对象。零件的 Touched 事件可以提供触摸它的 “其他部分”,但只有通过将其作为函数的 参数 提出来才能提供它。
参数是函数调用时期待收到的定义。 在参数中,您可以使用它作为其他变量的定义。 您可以通过将信息包含在父亲和函数调用时使用参数来传递信息给参数。 在函数的第一行中包含 otherPart 为了 kill 函数。 创建一个名为 1>参数1>
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
当 kill 函数调用时,otherPart 参数将代表熔岩地板触摸到的部分,而您在函数中写代码的话,就能使用它。
角色和人形
当用户触摸岩浆时,Roblox 可以检测到用户触摸它的特定身体部位,例如左腿或右腿。 此部分位于用户的 角色 模型中,该模型包含用户在体验中包含的所有对象,例如:
- 用户的身体部分,例如头部、手臂和躯干。
- 用户穿戴的任何服装和配件。
- Class.Humanoid,一个特殊对象,包含与用户相关的许多属性,包括用户的健康。
- 人形根部分,控制用户的移动。
如前所述,熔岩触摸到的任何身体部位都是 otherPart.Parent 的一部分,因此您可以使用 其他部分.父亲 来获取与该角色相关的参模型。创建一个变量来存储熔岩触摸到的地板的父亲。
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
从角色模型中,您需要获取人形对象才能杀死用户。您可以使用 FindFirstChild() 函数来这样做 - 只需将您要查找的东西的名称传给它,它就会找到该对象中的第一个匹配子。 调用 FindFirstChild
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
检查人形
您可以使用 如果 语句轻松检查是否找到人形。如果条件在第一行中定义为 true,代码在第二行中运行。
有一系列 操作员 可以用来在未来的课程中构建更复杂的条件 - 为了现在,只需将 humanoid 变量放在那里。创建一个 if 声明,将 2>humanoid2> 作为条件。
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,该关联的角色将死亡。在 if 语句的体内,将 2>Humanoid2> 属性设置为 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)