检查点
本课属于 Coddy Lua 学习旅程的“Roblox 游戏脚本编写”单元。第 23 课,共 25 课。
玩家被击败后,Roblox 会等待 5 秒(Players.RespawnTime),然后在一个 SpawnLocation 上为其生成新角色。如果场景中有多个 SpawnLocation,Roblox 会随机选择一个,因此检查点可能会意外变成起点。
每个玩家都有一个 RespawnLocation 属性。将它设为一个 SpawnLocation,该玩家就总会在那里重生。障碍赛会在两个时候使用它:玩家加入时,它指向起点;玩家到达检查点时,它会改为指向该检查点。
local Players = game:GetService("Players")
local camp = workspace.Camp
camp.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
player.RespawnLocation = camp
end
end)RespawnLocation 属于每个玩家,因此一名玩家到达营地不会改变其他任何人的重生位置。
挑战
中等在发光的蓝色检查点保存每位玩家的进度。
- 在
PlayerAdded中,将玩家的RespawnLocation设置为workspace.Start。 - 玩家触碰检查点时,将其
RespawnLocation设置为checkpoint。 - 然后把它变成绿色:
Color3.fromRGB(0, 255, 0)。
按“开始”,踩上检查点,然后走进远处的熔岩:你会在检查点复活。然后点击“检查”。
亲手试试
local Players = game:GetService("Players")
local checkpoint = script.Parent
Players.PlayerAdded:Connect(function(player)
-- 让每位玩家从 workspace.Start 开始
end)
checkpoint.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
-- 让这位玩家以后都在这里重生
-- 把检查点变成绿色
end
end)
Roblox 游戏脚本编写中的所有课
自己练习: Lua 在线编译器