Menu
CoddyTech

检查点

本课属于 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 属于每个玩家,因此一名玩家到达营地不会改变其他任何人的重生位置。

challenge icon

挑战

中等

在发光的蓝色检查点保存每位玩家的进度。

  1. 在 PlayerAdded 中,将玩家的 RespawnLocation 设置为 workspace.Start。
  2. 玩家触碰检查点时,将其 RespawnLocation 设置为 checkpoint。
  3. 然后把它变成绿色: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 在线编译器