收起

温馨提示

只有认证用户才能操作

为了享受完美体验,赶快去认证吧

认证
游戏技巧 > 话题详情
标记
红石研究
5709
12
举报
2015-06-19
11:56
摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

《我的世界》中有些玩家做出了扫雷这个windows经典小游戏了,然而很多玩家想要学在我的世界中做扫雷小游戏,下面小编就为大家带来我的世界扫雷制作图文教程,告诉大家扫雷怎么做,希望对各位玩家有所帮助。

下载地址:http://pan.baidu.com/s/1o69kx5o


游民星空

一、整理思路

扫雷,一个风靡全球的小游戏,简单的规则,然而却能够吸引很多的玩家挑战。那么我们现在来分析一下扫雷的规则:

每个被翻开的格子,如果其不是雷,则会写出其周围8个格子所包含的雷数,如果是0则会翻开周围8个格子。翻开的是雷则游戏结束。

2. 翻开的第一个格子永远不会是雷。

好的,那么现在我们确定了一个目标,制作扫雷,那么我们就可以根据规则列出一张扫雷的游戏流程表。(由于在初期计划阶段,我们大概画画就好。)

游民星空

Ok,那么现在我们有了一个初始的计划图,现在,由于我们是要在mc里制作这样一个游戏,那我们现在开始就要将其模块化条理化并添加mc元素进去。容我们来梳理一下思路:

开局:由于我们要保证第一步翻开的格子肯定不是雷,那么显而易见,我们需要在开局,即翻开第一个格子的时候,生成整个棋局,才能完全保证我们所翻的格子不是雷。而我们也要保证生成完棋局的时候确实那个格子是被翻开的。同时呢,计时器也要开始工作。

游戏中:这个地方很简单,我们需要检测玩家的类左键操作和类右键操作。同时对其进行处理,而我们还需要统计场上出现的旗帜数。最后,我们还需要进行胜利判定。

胜利/失败:这个重点不多,我们只需要将地图剩余未标记的雷和标记错误的格子进行反馈。或者计算出玩家的时间是否能够开启修改英雄榜的方法。

重新开局:这个地方也是非常简单的。直接就可以重置地图,统计,还有时间。

英雄榜:将现有玩家的分数打印出来,同时给予玩家打印自己名字的权限。简单的说就是个打字机。

让我们简洁的整理下思路:

开局:生成雷局,开始计时器。

游戏中:检测输入,统计旗帜,检测胜利。

胜利:检查时间是否低于最优记录。

失败:反馈未正确标记的格子。

重新开局:重置雷局,重置计时器。

仔细看看其实我们要做的也不是特别多嘛,压力还是不大的。那么我们现在可以再将整理过的思路进行填充,增加实现方法。在开工各个部分之前,我们需要定一个整体的规划,这样就可以使我们建造出来的各个模块能够协同工作,可以理解为是某种协议。


null

打赏

打赏人数0钻石+0理由

只看楼主
打赏楼主
阔绰的打赏了钻石  1  颗
  • 1
  • 2
  • 3
  • 4
  • 5
麦块有你更精彩 66666666666 交个朋友吧 土豪,不解释 愿HIM与你同在
确定
评论
摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

首先,扫雷需要是哪种显示方法?当然有很多选择,但是我这里使用的是展示框配合地图的显示方法,因为展示框不是方块,是一个实体,那么就可以很方便的用选择器来进行选择及操作,它可以响应左键右键和中键,而其和地图的联动让其的显示效果丝毫不亚于方块。而操作方法也就在这时候定下来了,单纯的左键右键以及中键。

其次我们现在可以考虑模块之间有哪几种交流。生成雷局的时候,由于我定的规模是初级扫雷,那么就会有十个格子被标记为雷,而这个会在游戏中和失败两个模块里用到。计时器会在胜利模块中用到。旗帜会在失败模块里用到。


1楼
2015-06-19 11:57
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

二、开工

那么现在我们可以开工了。由于我们选择的是展示框显示屏,所以我们只能通过高频检测的情况来进行正常游戏。

这里我将我的电路截图进行说明,有图为证,整个扫雷的电路的确是模块化的产品:

游民星空


2楼
2015-06-19 11:58
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

制作开始。

这里是将地图进行预加载的地方,然而由于失误,我漏掉了没有雷的格子。

游民星空


3楼
2015-06-19 11:59
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

注:文中指令方块部分使用了绝对坐标,具体制作中请参考具体地图位置。

开局

游民星空


4楼
2015-06-19 12:00
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

这是我的棋局的剖面图,这里我的开局使用的是石质按钮开局,原因是我不希望高频一直启动着,这里选择用按钮是在效果和性能之间的折中选择。

每个按钮都可以激活前两层的命令方块,共计六个,第一层可以放置互相干扰也没问题的命令方块第一层的指令为:

setblock 16 3 -15 redstone_block


5楼
2015-06-19 12:02
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

该指令的作用为开启生成棋局的命令方块阵列第二层的指令为:

setblock ~ ~ ~2 air

该指令的作用为对这个格子进行一个标记,使生成雷局的时候不会在这个格子生成雷(其实这种处理方式没必要这么麻烦,然而我懒的找按下的按钮的数据值)。



6楼
2015-06-19 12:02
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

游民星空

其中中继器末尾就是上文红石块的放置位置,再配合这个命令就可以输出一个脉冲:

setblock ~ ~-1 ~ ai


7楼
2015-06-19 12:02
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

另外一个命令方块是上文标记系统的第二部分,指令如下:

/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。


8楼
2015-06-19 12:02
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

中继器之后接的命令是如下几条:

这条指令没什么必要,提供一个按下的格子变成禁止符号的标记,纯粹的视觉效果:

entitydata @e[score_kill=1,score_kill_min=1] {Item:{id:"minecraft:barrier",Count:1b,Damage:0s}}

这条指令是用来清除所有的石质按钮。因为石质按钮只是在开局时使用的。


9楼
2015-06-19 12:02
回复

null

摇摆第三人 楼主
9 钻石无忧史蒂夫
帖子:203

今天就到这里,上首页大图

10楼
2015-06-19 12:07
回复

null

下载排行
欢迎加入麦块社区
已奖励您
30经验值3钻石
要继续支持麦块喔
请收下3