注意:这篇文章上次更新于1089天前,文章内容可能已经过时。
游戏目标
制作定时桥,当人物未在规定时间内过桥将会失败。
大体需要以下几个步骤:
- 制作地形,建造一座桥 Bridge
- 制作按键 ButtonBridge
- 制作计时器 TimerDisplay
PS:这是少儿编程
Roblox Studio
Roblox 中国官网
解决 Roblox Studio 中国版一直正在登录的问题
安装好 Roblox Studio 后第一次使用可以打开软件界面,从第二次打开软件开始,就一直卡在正在登录的界面。我也不知道具体什么原因,大胆猜测是因为 Roblox 在国内和鹅厂有一些 PY 交易,所以问题出在鹅厂身上😏。看这快捷方式的后缀,本来陌生而又高大上的东西瞬间就亲切了许多
因为考虑到是鹅厂的问题,我就翻墙去了国际版官网 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 创建你的游戏。
在地形编辑器中点击 生成,勾选 平原 ,丘陵 和 山脉,点击生成按钮。
创建好的地形看不见人物的出现的地点,我们通过依次点击 模型=> 重生点,可以看见场景中显示了玩家出现的位置。
通过地形编辑器,侵蚀,把地面挖个坑出来。
再通过地形编辑器的填充操作,把坑里放上水。
接下来要插入三个 Part 组件,分别用来充当桥,倒计时显示器,和倒计时按钮。
右键 => 插入部件。
可以看到场景中多了个小方块并且项目管理器中多了个 Part。
使用缩放工具可以调整部件的大小。
我们再插入两个部件作为桥和倒计时显示器。把地形做成如下形式,并且做好重命名工作。
接下来对各个部件的属性进行设置。
首先,对三个组件都进行 Anchor(锚固),可以通过点击菜单栏中编辑选项卡中的 锚固,也可以再属性列表中勾选 Anchored。
桥的属性:
Transparency(透明度)设置为 0.8
取消选中 CanCollide
修改颜色
修改材质
在过桥时,玩家需要看到在桥消失之前还剩几秒。显示图像或文本的一种方法是将一个称作 SurfaceGUI 的对象添加到部件中。
首先将 TimerDisplay 部件加入 SurfaceGUI。
在刚添加的 GUI 中,添加 TextLabel。
现在,你可能甚至无法看到 TextLabel,它非常小,并且可能位于计时器显示的错误一侧。为了让玩家可以更好地查看计时器,应该将更改与 SurfaceGUI 相连的一侧并使 SurfaceGUI 变得更大。
我这里需要把 SurfaceGUI 的 Face 属性改成 Back,修改后可以看到组件的左上角有一块变了颜色。放大查看那里就是 TextLabel 显示的文字。
接下来我们需要调整 TextLabel 的大小和位置等属性。
我这里设置 TextLabel 的 Size 属性与 SurfaceGUI 的大小相同,并勾选 TextScaled 属性。
脚本编写
我们在 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)
少儿编程的逻辑,就不解释了