网易我的世界论坛
标题:
羊毛大作战 之 4 对战时刻
[打印本页]
作者:
小思哦
时间:
2019-8-14 17:03
标题:
羊毛大作战 之 4 对战时刻
上一期教程里,我们在玩家人数满足要求后,倒计时3秒,然后把所有玩家传入到了羊毛区域。
这一期教程,我们要让玩家在羊毛区域玩起来,并且统计到每个玩家的羊毛数量。
做完后实现的效果是:
每个人脚底的羊毛变成自己专属颜色的羊毛;
统计每个人拥有的羊毛数量;
游戏时间限时1分钟;
界面上显示每个人羊毛的数量;
[cc]5d53cf294dd6e707a1f6c0dd[/cc]
这一期的教程用到的都是逻辑编辑器的功能。考虑到前面的教程已经介绍了较多逻辑编辑器的基础内容,这一期教程我们不再一步一步讲解,而是以介绍思路为主,逻辑连线图会直接贴出最后的结果。
1 让每个人脚底的羊毛变成专属羊毛
因为我们要支持两个人进行游戏,那就需要两组变量来记录不同玩家的信息,包括玩家ID、玩家的羊毛数量。在世界创建完成事件后添加相关的变量:
[attach]876392[/attach]
player1、player2分别是玩家ID,p1WoolNum是player1的羊毛数量,p2WoolNum是player2的羊毛数量。在玩法设计上,我们设定player1的专属羊毛是粉色羊毛,player2的羊毛是黄色羊毛。
在玩家加入世界,在“玩家数加1”节点后去记录玩家ID。
[attach]876393[/attach]
“记录玩家ID”宏的内部逻辑如下:
[attach]876394[/attach]
根据玩家数量,依次把加入的玩家ID赋值给player1、player2。
在节点的连接中,一般都不推荐连线汇聚的连法(如上图中的黄色方块1的位置),连线汇聚时,其执行顺序和我们直观理解的差异会比较大 具体可参考下面这个链接中的“4.3 节点执行顺序”。
http://mc.163.com/mcstudio/starter/1-2-3.html
这里可以这么连的原因是,每条线执行的条件是互斥的,这3条线肯定只会执行到其中1条,这种情况下连线汇聚到同一个节点是没有关系的。
现在就完成记录玩家信息这一步了。
上一期教程中,传送到羊毛区域时,我们把stage的值修改为了4(在我们之前的逻辑中,stage是一个临时变量,用来标志游戏不同的阶段)。
stage为4时我们就可以让玩家脚底的羊毛变成自己的专属颜色了。
[attach]876395[/attach]
“玩家1脚底羊毛处理”内部的逻辑如下:
[attach]876396[/attach]
这部分逻辑做了下面这些事情:
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秒时分别提示一次玩家。
最终的节点图如下:
[attach]876397[/attach]
主ets中,在倒计时后添加“游戏时间提示”,这个游戏时间提示会耗时1分钟,然后将stage修改为5,这样玩家脚底的羊毛就不会变色了。(因为“玩家脚底羊毛处理”的宏需要stage的值为4时才会执行)
“游戏时间提示”宏内部节点图如下:
[attach]876398[/attach]
其结构很简单,依次延时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
[attach]876400[/attach]
羊毛数量变化时让羊毛+1或者-1:
/scoreboard players add @s woolNum 1
/scoreboard players add @s woolNum -1
[attach]876401[/attach]
到现在为止,羊毛大作战的主体部分已经完成了,下一期教程我们会对一些细节进行补充,完善对2个人同时游戏的处理,让它成为一个真正的可以上传到开发者平台的游戏。
作者:
龙八夷
时间:
2019-8-17 04:31
思姐我来学习啦
作者:
岛主
时间:
2019-10-16 20:47
小思也会做mod
欢迎光临 网易我的世界论坛 (http://mc.netease.com/)
Powered by Discuz! X3.3