← 所有教程
第 3 篇教程

做出你的第一个 simulator

点击一块水晶来获得力量,把力量卖成金币,再买升级,让每一次点击都更强。

免费50 分钟 · 新手 · Roblox Studio
1
第 1 / 8

设置场景

  1. 打开 Roblox Studio,点击 New Experience,选择 Baseplate 模板。
  2. 你要在地面上做三样东西:一块用来点击的水晶、一个用来卖东西的平台,还有一个用来买升级的平台。
  3. 它们之间大约隔 20 studs,这样玩家就得走一走。

更多细节

  • Baseplate 模板在开始页面的模板列表里。
  • Properties 里的 Position 栏显示零件在哪里。如果两个零件的第一个数字相差 20,它们就相距 20 studs。
  • 把这三样东西放在离 SpawnLocation 近的地方,SpawnLocation 就是玩家出现的那块平台。
  • 在 Mac 上,每当教程说 Ctrl 的时候,都改用 Cmd 键。
小提示. 先在纸上画出布局。点击、出售和升级之间走的路很短,simulator 玩起来才舒服。
这一步我做不出来

先检查这三件事

  • 每个零件和脚本的名字都要和教程里的完全一样,大小写也要一样。
  • 脚本要放在正确的物体里面。看一看代码框上面的标签。
  • 从 Window 菜单里打开 Output 窗口。红色的文字会告诉你哪个脚本、哪一行有问题。

还是不行?给我们写信 →

2
第 2 / 8

创建玩家的数据

  1. 把鼠标移到 ServerScriptService 上,点击 + 并添加一个 Script。把它命名为 Stats。
  2. 删掉里面已有的那一行,然后粘贴下面的代码。
  3. 按 Play。玩家列表里会显示 Power 0 和 Coins 0。
ServerScriptService > Stats
local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	for _, name in ipairs({"Power", "Coins"}) do
		local value = Instance.new("IntValue")
		value.Name = name
		value.Parent = stats
	end

	local multiplier = Instance.new("IntValue")
	multiplier.Name = "Multiplier"
	multiplier.Value = 1
	multiplier.Parent = player
end)

每一部分的作用

  • 这个循环用同一段代码创建了两个值:Power 和 Coins。
  • Multiplier 是一次点击给多少力量。它一开始是 1。
  • Multiplier 放在玩家身上,而不是放在 leaderstats 里,所以它不会显示在玩家列表中。

更多细节

  • 点 + 以后,输入 Script 这个词可以很快找到它。
  • 脚本会在新的标签页里打开。点一下代码里面,按 Ctrl+A,再按 Ctrl+V,替换掉所有内容。
  • 在 Explorer 里用 F2 给脚本改名。这个名字只是给你自己看的,可以帮你以后找到这个脚本。
  • 玩家列表在游戏的右上角。
这一步我做不出来

先检查这三件事

  • 每个零件和脚本的名字都要和教程里的完全一样,大小写也要一样。
  • 脚本要放在正确的物体里面。看一看代码框上面的标签。
  • 从 Window 菜单里打开 Output 窗口。红色的文字会告诉你哪个脚本、哪一行有问题。

还是不行?给我们写信 →

3
第 3 / 8

做出水晶

  1. 添加一个 Part。把 Size 设为 6, 8, 6,打开 Anchored,并命名为 Crystal。选一个鲜艳的颜色,并把 Material 设为 Neon。
  2. 把鼠标移到 Crystal 上,点击 + 并添加一个 ClickDetector。
  3. 给 Crystal 添加一个 Script,并粘贴下面的代码。
  4. 按 Play,然后点击水晶。每点一次,力量就加 1。
Crystal > Script
local crystal = script.Parent
local clickDetector = crystal.ClickDetector

clickDetector.MouseClick:Connect(function(player)
	local power = player.leaderstats.Power
	power.Value += player.Multiplier.Value
end)

每一部分的作用

  • ClickDetector 让一个 Part 可以被点击。在手机上轻点也有效。
  • MouseClick 会告诉脚本是哪位玩家点击的。
  • 脚本把玩家的 Multiplier 加到 Power 上,所以升级会让每一次点击都更强。

更多细节

  • 在 Properties 的 Size 栏里输入大小,按 Enter。然后用 Move 工具把水晶抬起来,直到它站在地面上。
  • 点 + 以后,输入 ClickDetector 就能找到它。在 Explorer 里,它必须向右缩进一格,放在 Crystal 下面。
  • 在游戏里,鼠标指针移到水晶上时会变成一只手。
  • 你必须站得够近。ClickDetector 只在 32 studs 或更近的距离内有效。
常见错误. 点击后没有反应:ClickDetector 必须直接放在 Crystal 里面,和脚本放在一起。
这一步我做不出来

先检查这三件事

  • 每个零件和脚本的名字都要和教程里的完全一样,大小写也要一样。
  • 脚本要放在正确的物体里面。看一看代码框上面的标签。
  • 从 Window 菜单里打开 Output 窗口。红色的文字会告诉你哪个脚本、哪一行有问题。

还是不行?给我们写信 →

4
第 4 / 8

加上出售平台

  1. 在地面上添加一个 Part。把 Size 设为 8, 1, 8,打开 Anchored,把它设成黄色,并命名为 Sell。
  2. 给 Sell 添加一个 Script,并粘贴下面的代码。
  3. 按 Play,点几下水晶,然后走到平台上。Power 就变成了 Coins。
Sell > Script
local Players = game:GetService("Players")
local pad = script.Parent

pad.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if not player then return end

	local stats = player.leaderstats
	if stats.Power.Value > 0 then
		stats.Coins.Value += stats.Power.Value
		stats.Power.Value = 0
	end
end)

每一部分的作用

  • GetPlayerFromCharacter 用来找出是哪位玩家踩上了平台。
  • 平台会把玩家的全部 Power 加到 Coins 上,然后把 Power 重新设为 0。

更多细节

  • 踏板是一块玩家可以走上去的平平的零件。
  • 把踏板平放在地面上。如果它太高,玩家就走不上去。
  • 带着 0 点力量走上踏板,什么也不会发生。这是对的。
  • 测试一下:点水晶 10 次,走上踏板,玩家列表就会显示 Power 0 和 Coins 10。
这一步我做不出来

先检查这三件事

  • 每个零件和脚本的名字都要和教程里的完全一样,大小写也要一样。
  • 脚本要放在正确的物体里面。看一看代码框上面的标签。
  • 从 Window 菜单里打开 Output 窗口。红色的文字会告诉你哪个脚本、哪一行有问题。

还是不行?给我们写信 →

5
第 5 / 8

加上升级平台

  1. 在地面上再添加一个 Part。把 Size 设为 8, 1, 8,打开 Anchored,把它设成蓝色,并命名为 Upgrade。
  2. 给 Upgrade 添加一个 Script,并粘贴下面的代码。
  3. 按 Play,赚到 25 个金币,然后踩上这个平台。现在每次点击能得到 2 点力量。
Upgrade > Script
local Players = game:GetService("Players")
local pad = script.Parent
local waiting = {}

pad.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if not player or waiting[player] then return end

	local price = player.Multiplier.Value * 25
	local coins = player.leaderstats.Coins
	if coins.Value < price then return end

	waiting[player] = true
	coins.Value -= price
	player.Multiplier.Value += 1

	task.wait(1)
	waiting[player] = nil
end)

每一部分的作用

  • 价格是玩家的 Multiplier 乘以 25,所以每次升级都比上一次贵。
  • waiting 表可以防止站在平台上不动一次买下很多个升级。
  • 买完之后,Multiplier 会加 1。

更多细节

  • 把这个踏板放在离出售踏板几步远的地方,这样玩家就不会不小心买到东西。
  • 第一次升级要 25 金币。买完以后,Coins 会减少 25,点一下就能得到 2 点力量。
  • 如果金币比价格少,踏板什么也不会做。走下来,多赚一些再回来。
  • 有 1 秒的停顿,所以站在踏板上不动,一次也只会买一个升级。
这一步我做不出来

先检查这三件事

  • 每个零件和脚本的名字都要和教程里的完全一样,大小写也要一样。
  • 脚本要放在正确的物体里面。看一看代码框上面的标签。
  • 从 Window 菜单里打开 Output 窗口。红色的文字会告诉你哪个脚本、哪一行有问题。

还是不行?给我们写信 →

6
第 6 / 8

给平台加上文字

  1. 把鼠标移到 Sell 上,点击 + 并添加一个 BillboardGui。把它的 Size 设为 {0, 200}, {0, 50},把 StudsOffset 设为 0, 4, 0。
  2. 在 BillboardGui 里添加一个 TextLabel。把它的 Size 设为 {1, 0}, {1, 0},打开 TextScaled,并输入这段文字:SELL
  3. 对 Upgrade 做同样的事,文字是:UPGRADE
  4. 对 Crystal 也做同样的事,文字是:CLICK ME。这里把 StudsOffset 设为 0, 7, 0,让文字飘在水晶的上方。

更多细节

  • 对于 Size 和 StudsOffset,在 Properties 里点这一栏,完全照着给出的样子输入数字,括号和逗号都要有,然后按 Enter。
  • Text 是 TextLabel 的一个属性。点 Text 栏,输入文字,然后按 Enter。
  • 更快的办法:在 Explorer 里点做好的 BillboardGui,按 Ctrl+C,再点下一个零件,按 Ctrl+Shift+V。然后只改文字。
  • 有了这些标签,新玩家不用任何解释就能看懂这个游戏。
小提示. BillboardGui 会一直转向镜头,所以玩家从任何一边都能看清上面的字。
这一步我做不出来

先检查这三件事

  • 每个零件和脚本的名字都要和教程里的完全一样,大小写也要一样。
  • 脚本要放在正确的物体里面。看一看代码框上面的标签。
  • 从 Window 菜单里打开 Output 窗口。红色的文字会告诉你哪个脚本、哪一行有问题。

还是不行?给我们写信 →

7
第 7 / 8

测试整个流程

  1. 按 F5。点击、出售、升级,然后再来一遍。
  2. 检查升级的价格是不是在涨:25 个金币,然后 50,然后 75。
  3. 按 Shift+F5 停止。如果哪里出了问题,从 Window 菜单里打开 Output 窗口,看看红色的文字。

更多细节

  • 数一数你点了多少次。Multiplier 是 1 的时候,点十次得到 10 点力量。
  • 第一次升级以后,点十次得到 20 点力量,第二次升级以后得到 30 点。
  • 游戏运行时做的修改,停止后就会丢失。先按 Shift+F5,再去修改。
  • 在 Output 窗口里点一下红色的那一行,Studio 就会打开脚本,并跳到出错的那一行。
常见错误. 平台什么也没买到:你需要至少 25 个 Coins,而不是 25 点 Power。先去出售。
这一步我做不出来

先检查这三件事

  • 每个零件和脚本的名字都要和教程里的完全一样,大小写也要一样。
  • 脚本要放在正确的物体里面。看一看代码框上面的标签。
  • 从 Window 菜单里打开 Output 窗口。红色的文字会告诉你哪个脚本、哪一行有问题。

还是不行?给我们写信 →

8
第 8 / 8

发布它

  1. 选择 File → Publish to Roblox。给游戏起一个名字,再写一段简短的介绍。
  2. 在 Creator Hub 网站上打开你的游戏,填写 Maturity 问卷。
  3. 把游戏设为 Public,然后把链接发给一位朋友。

更多细节

  • 第一次发布时,Studio 会问你要一个名字和一段介绍。点 Create。
  • Creator Hub 就是网站 create.roblox.com。用同一个账号登录,然后在列表里点你的游戏。
  • 游戏公开之前,Roblox 可能还会要求更多信息,比如对账号做年龄验证。页面会告诉你还缺什么。
  • 如果你不满 18 岁,请和家长一起完成这一步。
小提示. 现在进度还不会被保存。玩家一离开,金币就没了。保存数据是进阶课程的内容。
这一步我做不出来

先检查这三件事

  • 每个零件和脚本的名字都要和教程里的完全一样,大小写也要一样。
  • 脚本要放在正确的物体里面。看一看代码框上面的标签。
  • 从 Window 菜单里打开 Output 窗口。红色的文字会告诉你哪个脚本、哪一行有问题。

还是不行?给我们写信 →

现在自己改一改

  • 再加一块水晶,每次点击给 5 点力量,但是它放得很远。
  • 让升级的价格每次都翻倍。提示:25 * 2 ^ (player.Multiplier.Value - 1)
  • 让水晶每点一次就变大一点。提示:修改 crystal.Size