ding_shi_qiao

游戏目标

制作定时桥,当人物未在规定时间内过桥将会失败。

大体需要以下几个步骤:

  1. 制作地形,建造一座桥 Bridge
  2. 制作按键 ButtonBridge
  3. 制作计时器 TimerDisplay

PS:这是少儿编程

Roblox Studio

Roblox 中国官网

https://roblox.cn/

解决 Roblox Studio 中国版一直正在登录的问题

安装好 Roblox Studio 后第一次使用可以打开软件界面,从第二次打开软件开始,就一直卡在正在登录的界面。我也不知道具体什么原因,大胆猜测是因为 Roblox 在国内和鹅厂有一些 PY 交易,所以问题出在鹅厂身上😏。image-20211108193743354看这快捷方式的后缀,本来陌生而又高大上的东西瞬间就亲切了许多

因为考虑到是鹅厂的问题,我就翻墙去了国际版官网 https://roblox.com 下载了国际版的 Roblox Studio ,并且在全局代理的模式下尝试登录国际版的账号。好家伙,点击登录一点反应也没有!

最后,女朋友帮 她自己找到了解决方案。

进入下面的文件夹:

C:\Users\ {你的用户名} \AppData\Local\Roblox\Versions-qq\version-{乱七八糟}

打开 RobloxStudioLauncherBeta.exe

如果成功,将RobloxStudioLauncherBeta.exe发送到桌面快捷方式。

如果过几天发现快捷方式也不好用,可以通过写 bat 文件的形式创建快捷方式。

新建一个 Roblox Studio.txt 文件,在文件中写入如下内容。

start C:\Users\{你的用户名}\AppData\Local\Roblox\Versions-qq\version-{乱七八糟的字符串}\RobloxStudioLauncherBeta.exe

最后,重命名文件为 Roblox Studio.bat ,双击这个文件,就可以打开 Roblox Studio 了。

界面搭建

打开软件,点击新增,使用 Baseplate 创建你的游戏。

image-20211108200242352

在地形编辑器中点击 生成,勾选 平原丘陵山脉,点击生成按钮。

image-20211108200634524

创建好的地形看不见人物的出现的地点,我们通过依次点击 模型=> 重生点,可以看见场景中显示了玩家出现的位置。

image-20211108200904583

通过地形编辑器,侵蚀,把地面挖个坑出来。

image-20211108201650749

再通过地形编辑器的填充操作,把坑里放上水。

image-20211108201910699

接下来要插入三个 Part 组件,分别用来充当桥,倒计时显示器,和倒计时按钮。

右键 => 插入部件。

image-20211108202220817

可以看到场景中多了个小方块并且项目管理器中多了个 Part。

image-20211108202329538

使用缩放工具可以调整部件的大小。

image-20211108202438547

我们再插入两个部件作为桥和倒计时显示器。把地形做成如下形式,并且做好重命名工作。

image-20211108203437374

接下来对各个部件的属性进行设置。

首先,对三个组件都进行 Anchor(锚固),可以通过点击菜单栏中编辑选项卡中的 锚固,也可以再属性列表中勾选 Anchored。

image-20211108203901907

桥的属性:

  1. Transparency(透明度)设置为 0.8

  2. 取消选中 CanCollide

  3. 修改颜色

  4. 修改材质

在过桥时,玩家需要看到在桥消失之前还剩几秒。显示图像或文本的一种方法是将一个称作 SurfaceGUI 的对象添加到部件中。

首先将 TimerDisplay 部件加入 SurfaceGUI。

image-20211108204422255

在刚添加的 GUI 中,添加 TextLabel。

image-20211108204546104

现在,你可能甚至无法看到 TextLabel,它非常小,并且可能位于计时器显示的错误一侧。为了让玩家可以更好地查看计时器,应该将更改与 SurfaceGUI 相连的一侧并使 SurfaceGUI 变得更大。

我这里需要把 SurfaceGUI 的 Face 属性改成 Back,修改后可以看到组件的左上角有一块变了颜色。放大查看那里就是 TextLabel 显示的文字。

image-20211108205130879

image-20211108205209494

接下来我们需要调整 TextLabel 的大小和位置等属性。

我这里设置 TextLabel 的 Size 属性与 SurfaceGUI 的大小相同,并勾选 TextScaled 属性。

image-20211108205753474

image-20211108205900650

脚本编写

我们在 Bridge 组件下创建 timedBridge 脚本文件,写入如下内容。

local bridge = game.Workspace.Bridge
local button = game.Workspace.BridgeButton

local timerpart = game.Workspace.TimerDisplay
local timertext = timerpart.SurfaceGui.TextLabel
timertext.Text = ""

local time5 = 5
local time_active = false

local function startTimer()
	time_active = true
	bridge.Transparency = 0
	bridge.CanCollide = true
	for count = time5,0,-1 do
		timertext.Text = count
		wait(1)
	end
	bridge.Transparency = 0.8
	bridge.CanCollide = false
	time_active = false
	timertext.Text = ""
end

local function buttonPressed(otherPart)
	local char = otherPart.Parent
	print(char)
	local humanoid = char:FindFirstChildWhichIsA("Humanoid")
	print("111")
	print(humanoid)
	if humanoid and time_active == false then
		startTimer()
		print("1111")
	end
end

button.Touched:Connect(buttonPressed)

少儿编程的逻辑,就不解释了

just-and-forceful