《我的世界》中有些玩家做出了扫雷这个windows经典小游戏了,然而很多玩家想要学在我的世界中做扫雷小游戏,下面小编就为大家带来我的世界扫雷制作图文教程,告诉大家扫雷怎么做,希望对各位玩家有所帮助。
下载地址:http://pan.baidu.com/s/1o69kx5o
一、整理思路
扫雷,一个风靡全球的小游戏,简单的规则,然而却能够吸引很多的玩家挑战。那么我们现在来分析一下扫雷的规则:
每个被翻开的格子,如果其不是雷,则会写出其周围8个格子所包含的雷数,如果是0则会翻开周围8个格子。翻开的是雷则游戏结束。
2. 翻开的第一个格子永远不会是雷。
好的,那么现在我们确定了一个目标,制作扫雷,那么我们就可以根据规则列出一张扫雷的游戏流程表。(由于在初期计划阶段,我们大概画画就好。)
Ok,那么现在我们有了一个初始的计划图,现在,由于我们是要在mc里制作这样一个游戏,那我们现在开始就要将其模块化条理化并添加mc元素进去。容我们来梳理一下思路:
开局:由于我们要保证第一步翻开的格子肯定不是雷,那么显而易见,我们需要在开局,即翻开第一个格子的时候,生成整个棋局,才能完全保证我们所翻的格子不是雷。而我们也要保证生成完棋局的时候确实那个格子是被翻开的。同时呢,计时器也要开始工作。
游戏中:这个地方很简单,我们需要检测玩家的类左键操作和类右键操作。同时对其进行处理,而我们还需要统计场上出现的旗帜数。最后,我们还需要进行胜利判定。
胜利/失败:这个重点不多,我们只需要将地图剩余未标记的雷和标记错误的格子进行反馈。或者计算出玩家的时间是否能够开启修改英雄榜的方法。
重新开局:这个地方也是非常简单的。直接就可以重置地图,统计,还有时间。
英雄榜:将现有玩家的分数打印出来,同时给予玩家打印自己名字的权限。简单的说就是个打字机。
让我们简洁的整理下思路:
开局:生成雷局,开始计时器。
游戏中:检测输入,统计旗帜,检测胜利。
胜利:检查时间是否低于最优记录。
失败:反馈未正确标记的格子。
重新开局:重置雷局,重置计时器。
仔细看看其实我们要做的也不是特别多嘛,压力还是不大的。那么我们现在可以再将整理过的思路进行填充,增加实现方法。在开工各个部分之前,我们需要定一个整体的规划,这样就可以使我们建造出来的各个模块能够协同工作,可以理解为是某种协议。
首先,扫雷需要是哪种显示方法?当然有很多选择,但是我这里使用的是展示框配合地图的显示方法,因为展示框不是方块,是一个实体,那么就可以很方便的用选择器来进行选择及操作,它可以响应左键右键和中键,而其和地图的联动让其的显示效果丝毫不亚于方块。而操作方法也就在这时候定下来了,单纯的左键右键以及中键。
其次我们现在可以考虑模块之间有哪几种交流。生成雷局的时候,由于我定的规模是初级扫雷,那么就会有十个格子被标记为雷,而这个会在游戏中和失败两个模块里用到。计时器会在胜利模块中用到。旗帜会在失败模块里用到。
二、开工
那么现在我们可以开工了。由于我们选择的是展示框显示屏,所以我们只能通过高频检测的情况来进行正常游戏。
这里我将我的电路截图进行说明,有图为证,整个扫雷的电路的确是模块化的产品:
制作开始。
这里是将地图进行预加载的地方,然而由于失误,我漏掉了没有雷的格子。
注:文中指令方块部分使用了绝对坐标,具体制作中请参考具体地图位置。
开局
这是我的棋局的剖面图,这里我的开局使用的是石质按钮开局,原因是我不希望高频一直启动着,这里选择用按钮是在效果和性能之间的折中选择。
每个按钮都可以激活前两层的命令方块,共计六个,第一层可以放置互相干扰也没问题的命令方块第一层的指令为:
setblock 16 3 -15 redstone_block
该指令的作用为开启生成棋局的命令方块阵列第二层的指令为:
setblock ~ ~ ~2 air
该指令的作用为对这个格子进行一个标记,使生成雷局的时候不会在这个格子生成雷(其实这种处理方式没必要这么麻烦,然而我懒的找按下的按钮的数据值)。
其中中继器末尾就是上文红石块的放置位置,再配合这个命令就可以输出一个脉冲:
setblock ~ ~-1 ~ ai
另外一个命令方块是上文标记系统的第二部分,指令如下:
/execute @e[19,17,22,dx=9,dy=9,dz=1,type=ItemFrame] ~ ~ ~ detect ~ ~ ~ air 0 /scoreboard players set @e[c=1,type=ItemFrame] kill 1
这条指令的作用是给棋局内部按钮被消去的格子里的展示框的kill计分板分数+1。
中继器之后接的命令是如下几条:
这条指令没什么必要,提供一个按下的格子变成禁止符号的标记,纯粹的视觉效果:
entitydata @e[score_kill=1,score_kill_min=1] {Item:{id:"minecraft:barrier",Count:1b,Damage:0s}}
这条指令是用来清除所有的石质按钮。因为石质按钮只是在开局时使用的。
今天就到这里,上首页大图