四时宝库

程序员的知识宝库

罗布乐思Roblox游戏开发基础教程第四期

大家好我是小编抹茶,今天阿茶将给大家带来罗布乐思的最后一期游戏开发基础教程,本期教程是建立在第三期的基础上,所以大家一定要好好复习第三期哦。

上一期我们简单制作了一个赛车游戏的雏形,但是我们还有许多问题还没有做完,所以本期的内容会比较复杂一些,但是这是自己做成一个罗布乐思游戏的最基础的内容了。

我们的赛道没有终点

没有胜负机制

赛车游戏能不能支持多人游戏

接下来我们一步一步完善我们简陋的赛车游戏。

1.多人游戏

我们先验证一下多人在线功能。先点击HOME菜单下的Stop红色按钮(或菜单栏中FILE菜单和HOME菜单之间的正方形红色按钮)停止当前游戏的运行,然后切换TEST菜单,选择Local Server以及2 Players,然后点击Start,如下图所示,这将启动一个本地服务端以及两个客户端来模拟多人在线游戏。

?

启动成功后,在其中一个客户端操作角色移动(或控制角色开动车子),则在另一个客户端可以实时看到角色移动(或车子开动),如下图所示。验证结果发现,多人在线游戏运行完美。

?到现在为此,我们还没写下一行代码,但我们这个多人在线赛车游戏的基本玩法已基本实现,这都得益于Roblox平台强大的功能,如素材库、已集成的联网功能等等。

目前我们这个游戏还不完整,还缺少判定胜负的逻辑,接下来我们将用脚本代码来实现该逻辑(Roblox用Lua语言来编写脚本,如果你对Lua还不了解,建议先学习了解,这样有助于你更容易理解游戏逻辑开发与实现。

游戏胜负实现逻辑

在终点处放置“终点线”,先跟该“终点线”接触(在游戏中称为碰撞)的车子为胜利的一方。

在Explorer->Workspace添加一个“Part”组件(添加方法跟添加出生点一样,只是组件名称为“Part”),添加成功后把该组件重命名为“FinishLine”。

移动“FinishLine”组件到赛道终点处,并通过Scale命令缩放组件,使组件大小能够横跨赛道,并处于能够跟车子碰撞的高度,如下图示:

?修改“终点线”组件的属性,把CanCollide属性去掉,即取消其物理表现属性,这样当车子冲过终点线时,该“终点线”组件不会被撞飞,设置后的属性如下图所示:

?现在我们开始添加判定胜负逻辑脚本。选中FinishLine组件,点击“+”号,添加一个Script脚本,如下图所示。添加成功后,FinishLine这个组件就有了一个脚本子节点。

?说明:

“Script”脚本运行在Roblox的服务器,而“LocalScript”脚本运行于玩家电脑的游戏客户端。在这里,大家先建立这么一个概念,其他细节暂时无需关注。

双击脚本, 将会在中间的游戏编辑窗口打开该脚本,在里面添加我们的逻辑代码即可完成游戏胜负逻辑判定,添加完成后的逻辑代码如下图所示(绿色部分是注释):

?游戏胜负判定逻辑:先跟终点线接触(碰撞)的一方胜利。在Roblox中,可以用组件的碰撞函数Touched来做检测,如代码中的第18行所示。

再次运行游戏验证,当车子冲过终点线后,将会在日志输出窗口看“xxxx win the game!”字样,xxxx是冲过终点线玩家的名称,如下图所示(如果没有看到Output窗口,请通过VIEW->Output打开):

?游戏开发到这里,游戏逻辑相对完善了,但游戏体验还不是很好,比如我们现在只能在日志输出窗口看到谁赢了,这很不方便,能不能直接在游戏场景中做展示呢?答案是肯定的,下面我们开始介绍Roblox的GUI。

在Roblox的GUI,可以实现在3D游戏上叠加2D界面,主要用于实现菜单、图片、信息等展示。跟着步骤完成一个比赛结果信息展示的GUI开发

在Explorer->StarterGui添加一个“ScreenGui”组件,添加成功后如下图所示:

?在Explorer->StarterGui->ScreenGui添加一个“TextLabel”,并把该组件重命名为“GameResult”,添加成功重命名后如下图所示:

?在游戏编辑器的左上角也将看到一个文字标签,标签的内容是“Label”。标签上的内容可以通过修改该控件的“Text”属性的值来改变,后面我们将通过脚本动态修改该控件的显示的内容。该标签控件默认是放置在左上角,有需要可以拖动到合适位置。

?就像前面提到的,判定游戏胜负的脚本运行在服务端,而游戏结果需要展示在玩家客户端的GUI上,服务端的结果需要通知到客户端,这就需要用到Roblox的RemoteEvent通知机制。请在Explorer->ReplicatedStorage下添加一个“RemoteEvent”控件,如下图所示:?

在Explorer->StarterPlayer->StarterPlayerScripts下添加一个“LocalScript”脚本

现在我们在刚添加的LocalScript脚本中添加逻辑,实现把赛车结果展示到我们在第20步添加TextLabel上 如下图所示(请认真阅读绿色注释部分,这将有助于理解代码逻辑):

我们再修改一下前面添加的服务器脚本,在原来代码基础上添加红框所示代码,如下图所示:

?OK,现在运行一下游戏,当车子冲过终点后,将看到游戏界面上展示出游戏结果,如下图所示:

发布游戏

?到这里,我们的赛车游戏算是有一个阶段成果了。接下来让我们学习一下怎么发布这个游戏,让我们的好友以及全世界的玩家来玩我们的游戏。

a、点击FILE->Publish to Roblox

b、在弹出的窗口选中New Place

c、在弹出的窗口输入游戏的名称以及描述,并把游戏设置为Public,然后点击Create Place按钮发布游戏

d、当发布进度条到100%时,点击“Next”按钮

e、在接下来的界面中,你可以看到你游戏的访问地址,你可以分享给你朋友,也可以尝试访问以下。最后点击done按钮完成整个发布流程。

?那么罗布乐思游戏开发基础教程就到此结束啦,大家可以在此基础上开发自己喜欢的游戏,并且发布在罗布乐思上让更多的人玩到你的游戏。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接