硬币门
本课属于 Coddy Lua 学习旅程的“Roblox 游戏脚本编写”单元。第 17 课,共 25 课。
if 不仅可以检查是否为 nil,还可以比较数字。当比较结果为 false 时,会运行 else 部分:
local score = player.leaderstats.Score.Value
if score >= 10 then
print("You win!")
else
print("Keep going")
end比较运算符包括 ==(等于)、~=(不等于)、<、>、<= 和 >=。注意这里是双写的 ==:单个 = 是把值赋给变量,而不是进行比较。
>= 3 表示“大于或等于 3”;> 3 表示“大于 3”,所以刚好等于 3 时条件不成立。
挑战
中等只有拥有 3 枚或更多金币的玩家才能打开木门。
- 在
coins这一行下面,如果玩家拥有3枚或更多金币,就打开门:将CanCollide设为false,将Transparency设为0.5。 - 否则(
else),打印You need 3 coins。
按“开始”:在你收集齐 3 枚金币之前,输出会显示 You need 3 coins;收集齐后,蓝色垫子会打开门。然后按“检查”。
亲手试试
local Players = game:GetService("Players")
local door = script.Parent
local pad = workspace.DoorPad
pad.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
local coins = player.leaderstats.Coins.Value
-- 至少有 3 个金币:打开门
-- 否则:打印 "You need 3 coins"
end
end)
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
Roblox 游戏脚本编写中的所有课
自己练习: Lua 在线编译器