查看: 1872|回复: 2
打印 上一主题 下一主题

[资源] 羊毛大作战 之 4 对战时刻

[复制链接]

606

主题

6611

回帖

3106

积分

Lv.8 凋零克星

不想考体育

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

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

跳转到指定楼层
楼主
发表于 2019-8-14 17:03:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 IP:广东
上一期教程里,我们在玩家人数满足要求后,倒计时3秒,然后把所有玩家传入到了羊毛区域。

这一期教程,我们要让玩家在羊毛区域玩起来,并且统计到每个玩家的羊毛数量。
做完后实现的效果是:
每个人脚底的羊毛变成自己专属颜色的羊毛;
统计每个人拥有的羊毛数量;
游戏时间限时1分钟;
界面上显示每个人羊毛的数量;

            


这一期的教程用到的都是逻辑编辑器的功能。考虑到前面的教程已经介绍了较多逻辑编辑器的基础内容,这一期教程我们不再一步一步讲解,而是以介绍思路为主,逻辑连线图会直接贴出最后的结果。

1 让每个人脚底的羊毛变成专属羊毛

因为我们要支持两个人进行游戏,那就需要两组变量来记录不同玩家的信息,包括玩家ID、玩家的羊毛数量。在世界创建完成事件后添加相关的变量:

player1、player2分别是玩家ID,p1WoolNum是player1的羊毛数量,p2WoolNum是player2的羊毛数量。在玩法设计上,我们设定player1的专属羊毛是粉色羊毛,player2的羊毛是黄色羊毛。

在玩家加入世界,在“玩家数加1”节点后去记录玩家ID。

“记录玩家ID”宏的内部逻辑如下:

根据玩家数量,依次把加入的玩家ID赋值给player1、player2。
在节点的连接中,一般都不推荐连线汇聚的连法(如上图中的黄色方块1的位置),连线汇聚时,其执行顺序和我们直观理解的差异会比较大 具体可参考下面这个链接中的“4.3 节点执行顺序”。
http://mc.163.com/mcstudio/starter/1-2-3.html
这里可以这么连的原因是,每条线执行的条件是互斥的,这3条线肯定只会执行到其中1条,这种情况下连线汇聚到同一个节点是没有关系的。

现在就完成记录玩家信息这一步了。

上一期教程中,传送到羊毛区域时,我们把stage的值修改为了4(在我们之前的逻辑中,stage是一个临时变量,用来标志游戏不同的阶段)。
stage为4时我们就可以让玩家脚底的羊毛变成自己的专属颜色了。

“玩家1脚底羊毛处理”内部的逻辑如下:
这部分逻辑做了下面这些事情:

1区域,取到player1脚底下的方块位置和类型(羊毛的Y坐标都是4,所以合成三维坐标时Y设为了4)
2区域,判断脚底是否是白色羊毛
3区域,判断脚底是否是黄色羊毛,如果是的话,player2的羊毛数量减1(因为接下来会被替换为粉色羊毛),如果不是黄色羊毛,那就不做任何事情(这个时候可能是粉色羊毛或者玩家跑到了羊毛区域外)
4区域中的节点会在2区域和3区域为真时执行,这个时候会把玩家脚底的非粉色羊毛替换为粉色羊毛,同时给player1的羊毛数量加1。

通过这部分逻辑,我们就让player1的脚底羊毛变成了粉色并且统计了粉色羊毛的数量。

相似的逻辑我们可以对player2脚底的羊毛进行处理。

实际上玩家1和玩家2脚底羊毛的处理可以抽象为一个宏,玩家id作为宏的传入参数,具体如何做大家可以自己尝试一下。

2 游戏时间限时1分钟

在游戏开始时,利用 参数节点->变量->现实时间 记录开始的时间,之后每次刷新时取到最新的时间和最开始的时间去比较。当时间达到1分钟时,游戏结束。
也可以直接用延迟节点,延迟1分钟后让游戏结束,这种方式比较简单,这里我们用这种方式。为了让体验更好,还可以添加一些定时提示,比如剩余30秒、10秒、5秒时分别提示一次玩家。

最终的节点图如下:

主ets中,在倒计时后添加“游戏时间提示”,这个游戏时间提示会耗时1分钟,然后将stage修改为5,这样玩家脚底的羊毛就不会变色了。(因为“玩家脚底羊毛处理”的宏需要stage的值为4时才会执行)

“游戏时间提示”宏内部节点图如下:

其结构很简单,依次延时30秒、20秒、5秒作出提示,全部延时的总时间为1分钟。

3界面上显示每个人的羊毛数量

由于目前编辑器还不支持界面的编辑和显示,我们用MC中的记分板指令来显示每个人的羊毛数量。这一块涉及到逻辑编辑器的功能并不多,如果对记分板不感兴趣的话,这一块的内容可以跳过。
MC中的记分板如何使用可参考下面的链接:
https://minecraft-zh.gamepedia.com/%E8%AE%B0%E5%88%86%E6%9D%BF

羊毛大作战里,用到的记分板指令如下(绿色部分为指令参数):
倒计时结束时,添加记分板变量:
/scoreboard objectives add woolNum dummy “羊毛数量”
将记分板显示在侧边栏:
/scoreboard objectives setdisplay sidebar woolNum
在记分板上显示一条提示信息,也让排版更好看一点:
/scoreboard players add “§c-- 快快抢夺脚下羊毛 --” woolNum 0

羊毛数量变化时让羊毛+1或者-1:
/scoreboard players add @s woolNum 1
/scoreboard players add @s woolNum -1


到现在为止,羊毛大作战的主体部分已经完成了,下一期教程我们会对一些细节进行补充,完善对2个人同时游戏的处理,让它成为一个真正的可以上传到开发者平台的游戏。

本帖子中包含更多资源

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

x

156

主题

897

回帖

579

积分

Lv.6 附魔大师

MinecraftCG渲染图签约作者

UID
50004
小麦
155
金锭
1717
下界之星
0

三周年纪念勋章玩家团队勋章

沙发
发表于 2019-8-17 04:31:28 | 只看该作者 IP:陕西
思姐我来学习啦

264

主题

170

回帖

407

积分

Lv.5 农牧专家

开发者岛主

UID
8024
小麦
29
金锭
1374
下界之星
0

三周年纪念勋章玩家团队勋章

板凳
发表于 2019-10-16 20:47:37 来自手机 | 只看该作者 IP:浙江
小思也会做mod
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部