你的第一个障碍闯关游戏
本课属于 Coddy Lua 学习旅程的“Roblox 游戏脚本编写”单元。第 25 课,共 25 课。
障碍赛(obby)是经典的 Roblox 入门游戏:从起点到达终点,途中不能碰到任何致命物体。这一关的赛道漂浮在空中:
Start:出生点LavaFloor:一块宽阔的灰色平台。上面的两条熔岩带位于 workspace 中的Lava文件夹里。Checkpoint:位于中途的 SpawnLocationPath:一条狭窄的步道Finish:金色平台
ServerScriptService 中的一个脚本会用到这门课程里的所有内容,运行整个游戏。这里有一个新知识点:
有两个 SpawnLocation(起点和检查点)时,LoadCharacterAsync 会让获胜者在其 RespawnLocation 处重生,因此要先把它指回起点,再让获胜者前往那里。
挑战
困难让整个障碍赛都由一个脚本控制。
- 在
PlayerAdded中:创建包含一个值为0的 IntValueWins的leaderstats,并将RespawnLocation设为workspace.Start。 - 触碰
workspace.Lava中任何部件的人都会被淘汰。 - 触碰
workspace.Checkpoint后,它会成为玩家的重生点。 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,然后返回起点
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
Roblox 游戏脚本编写中的所有课
自己练习: Lua 在线编译器