查看: 2377|回复: 7
打印 上一主题 下一主题

[资源] 羊毛大作战 之 2 进入游戏

[复制链接]

606

主题

6611

回帖

3106

积分

Lv.8 凋零克星

不想考体育

UID
12
小麦
554
金锭
9312
下界之星
0

三周年纪念勋章二周年纪念勋章一周年纪念勋章秋天的童话设计师开发者认证勋章玩家团队勋章妙镐生花第一季百万勋章内测精英勋章问答斯基的方向盘我是Alex!

跳转到指定楼层
楼主
发表于 2019-7-2 15:33:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 IP:广东
上一期教程,我们实现了基本的玩法,已经可以脑补最终玩法的形态了。不过,距离让玩家很流畅的体验这个玩法,还有不少工作要做。

今天我们先来完成玩家进入游戏到把玩家传入到起始房间的功能。

做完后实现的效果是:
玩家加入游戏后,把玩家放到一个小房子里;
统计当前游戏内玩家数量

下面按步骤说明怎么达到这个效果(这一期将略过一些基础的操作和概念,如果有不明白的地方请看上一期教程)。

1 游戏出生点

我们先做一个小房子,作为游戏未开始时安放玩家的地方。

打开地图编辑器,材质选择橡木模板,笔刷选择方形笔刷,勾选“中空结构”,厚度设为1,就能够生成一个中空的、边长为12、壁厚为1的正方体了。


现在这个启动器还是闭合的,我们想让顶部是敞开的,可以用橡皮擦把顶部的方块都清除掉。选择“橡皮擦”工具,鼠标上就会显示一个橡皮图标,点击可以清除选中的方块,按住拖动,可以连续清除方块。



也有另外一种方式可以清除规则形状内的方块:先选中要清除的区域,然后用替换功能把区域内的方块都替换为空气。下面结合图片说明下这种操作方式。

先选择顶层一个角的方块。

鼠标移到上图中选中方块的右侧面上,按住鼠标,被选中的面会变成淡蓝色。

按住鼠标向右拖动,选中一行方块。

右键按住屏幕,旋转下视角,以方便选择另外一面。

鼠标放在上图选中区域的右侧面,按住鼠标。

向右拖动,直到选中整个顶层。

点击工具栏中的“替换”。

替换界面中,会列出当前选中区域内已有的方块类型,以及该方块类型要替换为什么方块。

点击左侧要设置的方块,再在右侧选择空气方块,然后点击“替换”按钮,就达到了我们要的效果。



好了,出生点就先用这个简陋的小房子了。

2 把加入游戏的玩家放到小房子里

玩家进入游戏后,我们要把他们放到小房子里等待游戏开始。

把出生点设置到小房子内是一种方式(将在7月支持该功能),这里我们介绍用逻辑编辑器的方式,用这种方式来做,能够在玩家加入游戏做更多的事情(比如给玩家道具、装备等)。

下面这段逻辑将要实现的效果是,当玩家加入游戏时,出现在小房子内随机的一个位置。
小房子地面的坐标范围可以在地图编辑器中方便的查看,选择屋角的一个方块,在编辑器底部的状态栏右侧,会显示当前选中的坐标。如下图。



通过这种方式,我们确定了小屋子的坐标范围是(25, 5, -13)到(34, 5, -22)。

接下来实现逻辑部分。
这部分逻辑我们挂在世界部分。选择关卡编辑器中的世界。


在属性窗口中选择新建逻辑(注意逻辑文件的命名不要包含中文字符)。


按下图连接节点。对应的节点分布位于:
事件节点->世界事件->玩家加入世界
参数节点->变量->随机数
参数节点->变量操作->合并三维坐标
行为节点->通用->设置实体位置


在这段逻辑里,我们在玩家加入游戏时,随机了一个房间内的坐标给玩家(Y是5是因为这是小房子地面的Y坐标,是固定的)。其中随机数节点会获得最小值和最大值之间的一个随机值,比如随机25~34之间的值,那么有可能得到26、30.4或其他任意满足范围要求的值。

3 判断加入游戏的人数

羊毛大作战是一个多人玩法,需要满足人数需求时才能玩得起来。
我们用一个变量来存玩家的数量,当有玩家加入时,变量加1,有玩家退出时,玩家减1,这样就能得到当前世界里玩家的数量了。

这部分逻辑我们同样放在世界里,在刚才的逻辑文件中,按下面的方式连接逻辑(红框内是新增的逻辑)。新增加的节点分别位于:
事件节点->世界事件->世界创建完成
参数节点->临时变量->添加临时变量
参数节点->临时变量->设置临时变量
参数节点->临时变量->读取临时变量
运算节点->算术节点->相加
运算节点->算术节点->相减


新增逻辑实现的功能为:当创建世界时,添加一个临时变量用来存玩家数量;当有玩家加入时,给这个临时变量加1;当有玩家退出世界时,给这个临时变量减1。通过这样的方式,我们可以得到当前游戏内有多少个玩家。这个玩家数量可以在后续游戏流程中作为判断依据(如只有达到2名玩家后才可以开始游戏)。

这里要特别解释下临时变量的概念。
临时变量由“键-值”对组成,“键” 就是上面截图中的“playerNum”这样的字符串,“键”会对应一个值,可以通过“键”来取到或者修改对应的值。
相应的临时变量有3个相关的节点:

添加临时变量:添加一个“键-值”对,只有添加了之后才能设置和读取对应的临时变量(上面的示例中添加playerNum临时变量后还设置了一次它的值,是由于目前的版本存在Bug,7月底的版本将无需再这么做);在添加临时变量时,如果键已经存在,那么不会进行任何操作,直接执行下一个节点。
设置临时变量:将临时变量的值设置为指定值;
读取临时变量:读取临时变量的值。

需要注意的是,当游戏结束运行后,临时变量会被清空。

4 避免自然生成的生物的影响

在编辑过程中,可能会生成很多原生生物,对我们的编辑造成影响,由于我们这个玩法不需要原生的生物,可以将原生的生物都去掉。

在关卡编辑器的世界选项中,取消“生物生成”的勾选,然后保存。


再通过舞台将已经生成的生物删除。在舞台上,在生物类型的名字上右键,然后点击删除,就可以将这一类的生物都删除掉。


本期教程就到这里了,下一期教程我们将实现从小屋子传送到羊毛区域并进行游戏的功能。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3

主题

11

回帖

7

积分

Lv.1 新手木匠

UID
273750
小麦
0
金锭
113
下界之星
0
沙发
发表于 2019-7-3 14:41:00 | 只看该作者 IP:广东
期待特效编辑器的教程

319

主题

1万

回帖

6646

积分

Lv.9 终界行者

人形帖子内容修复器

UID
526
小麦
1520
金锭
8113
下界之星
0

三周年纪念勋章二周年纪念勋章

板凳
发表于 2019-7-3 15:09:45 | 只看该作者 IP:广西
本帖最后由 我是绵羊Yang_g 于 2021-1-27 11:44 编辑

才发现有这软件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

9

主题

26

回帖

40

积分

Lv.2 石器学徒

UID
28861
小麦
2
金锭
170
下界之星
0
地板
发表于 2019-7-3 15:10:52 | 只看该作者 IP:湖南
一看就懂,一做就崩系列

1

主题

6

回帖

3

积分

Lv.1 新手木匠

UID
6094398
小麦
0
金锭
94
下界之星
0
地下室
发表于 2019-7-10 14:21:10 来自手机 | 只看该作者 IP:浙江
唔- -

232

主题

1万

回帖

6125

积分

Lv.9 终界行者

SingularityX

UID
5825625
小麦
1702
金锭
5403
下界之星
0

三周年纪念勋章二周年纪念勋章

6
发表于 2019-7-12 13:19:55 | 只看该作者 IP:浙江
我觉得还是直接搭小屋比较方便

0

主题

3

回帖

1

积分

Lv.1 新手木匠

UID
6927754
小麦
0
金锭
5
下界之星
0
7
发表于 2019-8-6 09:47:40 来自手机 | 只看该作者 IP:浙江
很不错啊,我都觉得编辑器教程太少了难以入手,谢谢楼主

1

主题

10

回帖

4

积分

Lv.1 新手木匠

UID
7547335
小麦
0
金锭
25
下界之星
0
8
发表于 2020-3-21 20:05:09 来自手机 | 只看该作者 IP:浙江
新手表示只会用游戏模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部