Menu
CoddyTech

你的第一个障碍闯关游戏

本课属于 Coddy Lua 学习旅程的“Roblox 游戏脚本编写”单元。第 25 课,共 25 课。

障碍赛(obby)是经典的 Roblox 入门游戏:从起点到达终点,途中不能碰到任何致命物体。这一关的赛道漂浮在空中:

  • Start:出生点
  • LavaFloor:一块宽阔的灰色平台。上面的两条熔岩带位于 workspace 中的 Lava 文件夹里。
  • Checkpoint:位于中途的 SpawnLocation
  • Path:一条狭窄的步道
  • Finish:金色平台

ServerScriptService 中的一个脚本会用到这门课程里的所有内容,运行整个游戏。这里有一个新知识点:

有两个 SpawnLocation(起点和检查点)时,LoadCharacterAsync 会让获胜者在其 RespawnLocation 处重生,因此要先把它指回起点,再让获胜者前往那里。

challenge icon

挑战

困难

让整个障碍赛都由一个脚本控制。

  1. 在 PlayerAdded 中:创建包含一个值为 0 的 IntValue Wins 的 leaderstats,并将 RespawnLocation 设为 workspace.Start。
  2. 触碰 workspace.Lava 中任何部件的人都会被淘汰。
  3. 触碰 workspace.Checkpoint 后,它会成为玩家的重生点。
  4. workspace.Finish 会让 Wins 恰好增加 1,将 RespawnLocation 设为 workspace.Start,并调用 LoadCharacterAsync()。

点击“开始”,连续通关两次障碍赛:Wins 显示 2。然后点击“检查”。

亲手试试

local Players = game:GetService("Players")

-- 1. 每位玩家都有 leaderstats,其中 Wins = 0,并从起点开始
Players.PlayerAdded:Connect(function(player)

end)

-- 2. workspace.Lava 中的每个部件都会杀死玩家

-- 3. 检查点成为玩家的重生点

-- 4. 到达终点:胜利次数 +1,然后返回起点
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

Roblox 游戏脚本编写中的所有课

自己练习: Lua 在线编译器