题外话:
又一个月过去了,现在又回到家里准备开始网课生活了。疫情还是一如既往地在恶心人呢。
前言:
在同学的推荐下,第一次接触“机械动力”这个模组。应该是个挺有名气的老牌模组,确实挺好玩的。
正好新建的一座大楼需要搞个电梯,就尝试用机械动力搞一个比较高级的电梯。最终实现的效果还不错,拿出来分享一下。
大体思路:
- 从电梯里讲台或呼叫电梯的位置获取目标层数
- 判断起点与终点是否一致,若相等则取消
- 判断需要向上还是向下,来决定反向齿轮箱是否启用
- 将目标层上的拦截器开启
- 松开离合,让电梯开始运动
- 电梯遇到开启的拦截器,离合箱、反向箱状态复位,电梯停止
具体实现:
利用讲台上面的书能用比较器对应到红石的强度,来实现选层(碍于原版最高为15的红石强度,只能实现1~15层的电梯)。
PS:书中的字符画直接靠程序生成的,在宽19像素,高13像素的白底图片插入黑色数字,再靠程序逐一判断每个像素是黑还是白,输出不同的符号。 > >生成的字符画< <
靠比较器判断代表电梯当前楼层与要去的楼层的红石强度:
靠要去楼层的信号激活指定楼层的拦截器:
利用锁存器来保持方向(向上/向下)、运行状态(松离合/踩离合)直到到达目的地。
利用接触式信号发生器在指定层数拦截电梯:
信号发生器被活塞推出才会与电梯产生信号,产生信号后发送归位信号停住电梯,然后收回信号发生器。
获取电梯的楼层与讲台的楼层:
将短暂的楼层信号锁住(感觉是非必要的):
由于只有电梯正好在哪层的时候才会有多强的信号,所以大部分情况下输入的都是0,但总不能电梯跑起来就1、0、2、0、3的显示电梯的当前楼层吧。
所以就靠这个装置把脉冲输出的强度锁起来,有新的非零信号再把之前的覆盖掉。
但感觉既然不会在运行中去用到楼层,那么这个就没有啥用了,只能用来连续的显示楼层。(这真是太cool了!)实现呼叫电梯:
默认情况下的目的地楼层的信号一直来自电梯里的讲台,所以在呼叫电梯时先得给它替换掉,再发出开始信号。
实现自动开门:
结构动起来就不会向外出充能了,所以不用担心中途每个门都开开。不算复杂,但要好看还是得考虑考虑。
轿厢:
展示/教学视频:
B站:https://www.bilibili.com/video/BV1md4y147kF