hzhh95963
大家好,我又来了。在之前的一个帖子:[教程] 新一代TNT大炮的设计指导!突破性的射程! 里面我说过要给那门TNT大炮加上自动装填,现在已经完成了~演示视频在这里:
B站:http://www.bilibili.tv/video/av217557/

其实有关TNT方面的问题都已经在上一个帖子里面讲完了,这次就说一些关于红石和活塞方面的问题。其实我希望这个帖子不仅仅是为了解决TNT的自动装填的问题,希望大家在解决其他问题的时候也会用到我这里的一部分部件,我也很高兴能帮助到各位。

二楼放上整个设计的示意图。


hzhh95963
本帖最后由 hzhh95963 于 2012-6-1 19:54 编辑

先说明一下,如果看过Minecraft wiki中的红石电路的话应该很容易理解下面图标的含义。我这里再放上wiki中的图例:


自动装填部分:


和wiki稍微有些不同的是继电器,在wiki的图例里的继电器没有延迟,这里的继电器标记了延迟的大小。
这张图是用Circuit Simulator这个工具制作的。BBS里似乎没有。官网论坛上下载需要翻墙,我下载下来后放到115了:
http://115.com/file/c24g8d1k#

使用时新建一个bat文件,里面写上
  1. java -jar *.jar
复制代码
然后保存到jar文件的同一个目录下,运行这个bat文件就行了。
左键放置和改变方向,点击滚轮改变中继器的延时,右键删除。
这个模拟器生成的文件似乎可以被用于导入到MCEdit地图编辑器中,不过我没试过,大家可以试试。
有模拟器是好事情,不过不要完全相信相信模拟器的结果,有时Minecraft的红石系统(尤其是活塞)会以完全意想不到的方式运作……

这张示意图里之画出了发射药的装填,没有把炮弹的装填画进去。这里说一下,炮弹的装填是使用传统的沙子做填充,一次一个,如果能看懂上面的示意图,自己做一个也不是很难。

发射药的装填过程如下:
1、三活塞推送3列TNT
2、活塞墙将TNT整体推动1格
3、造石机将空出的位置用石头填补

这三步再重复一次,一次发射的装填就完成了。

SR锁存器用于控制造石机的启动与关闭。
在SR锁存器的上下各有一个的奇怪部件是在视频中的带延时的竖直红石信号组,它们就是SR锁存器的S输入和R输入。

在示意图的右下角,一次发射的红石信号被输入到了计数器的部分。

计数器部分


如果有数字电路的基础的看这里很简单。
一个SR锁存器和一个与门的组合用于记录一次红石信号。这里六个,能记录六次红石信号,算上最后一次清零的红石信号,正好等于TNT大炮的七发装填。在七发完毕后关闭造石机和控制电路。
有能力者当然可以做一个3bit的BCD码计数器,不过我觉得实在是大材小用了,而且电路复杂对游戏的运行效率也有影响……

这个功能没有也没问题,只不过打完炮弹之后要自己关掉造石机。

控制电路


这里电路的形态上和实际的有一些区别,但基本结构是一样的。要说起来有点复杂,但还是通过与门、或门、SR锁存器来进行的状态控制和信号输出,如果能使用模拟器来实际操作一下就能理解了。

我使用了一个粘性活塞来进行电路的控制。

左上角的继电器延时是要根据装填时间来进行实际调节的,我这里为了简便就只画了几个,实际上大约是30个满开的继电器吧……

hzhh95963
本帖最后由 hzhh95963 于 2012-2-18 14:30 编辑

这里说一下我为什么不使用一些红石MOD,比如无限红石距离或者无线红石之类的。其实说起来,Minecraft的红石系统里面,门电路并不是什么难点,只要看得懂真值表,按照示意图摆一个就是了。数字电路一般来说也就是0和1的问题。

而Minecraft里面真正有难度的东西在于如何在有限的空间里在红石的一些特殊限制下完成功能。假设有一个6格宽度的地下室,而你设计的放在里面红石系统需要7格,那就是不能用。就好比Intel和AMD,他们会是在门电路上有问题吗?他们的最大问题就是如何在有限的芯片空间里面装下更多的晶体管。Minecraft的红石系统的挑战性就在于这里。

最后附上存档和示意图文件,压缩包里的.schematic文件就是用Circuit Simulator打开的。
http://115.com/file/e7fy02hk#

剩下要说的好像也没什么了,希望大家都能想出更有趣的minecraft创造物~

第一页 上一页 下一页 最后一页