红石电路吧 关注:32,210贴子:153,292
  • 10回复贴,共1

【TheRedPixel】十滴水(Tendrops而非rheo-camphoradin)

取消只看楼主收藏回复


阿散乱开光影折磨显卡(彻底喜欢上这个滤镜了Ow)


IP属地:湖北1楼2015-11-08 20:09回复
    大家好我是来自TRP的sine qua non
    这次带来的作品是拖坑拖了一年半的十滴水
    说到十滴水,十滴水是中成药,为暑湿类非处方药药品,棕红色至棕褐色的澄清液体;气芳香,味辛辣。主要治疗健胃,驱风。用于因伤暑引起的头晕,恶心,腹痛,胃肠不适。
    ↑以上纯属瞎掰,这次带来的是一款益智类的游戏

    ↑大概就是这样


    IP属地:湖北4楼2015-11-08 20:38
    回复
      稍微讲解一下游戏规则:
      首先初始的水滴数量为10,
      水滴可以对单元格进行「加水」的操作,能使该单元格的水滴增大
      水滴总共有4种不同的状态(在mc中我设置为3个)
      当水滴饱和之后,继续「加水」将会使水滴炸裂,变成飞溅的水滴给邻近的水滴进行「加水」操作
      每有连续的3个水滴炸裂后,水滴数量将会+1
      每次给一个单元格进行「加水」操作之后,水滴数量将会-1
      在6*6=36个单元格的水滴全部被清楚之后,将进入下一关,而水滴数量将会+1
      比较纠结的就是能不能给空格子加水的问题,我以前玩的版本是不行的...然后现在玩有的行有的不行,所以就干脆制作成了「无法给空格加水」这样的
      如此直到水滴数量剩余0为止


      IP属地:湖北6楼2015-11-08 20:49
      回复
        这个作品最大的亮点在于...它真的很薄

        去掉显示屏后的厚度仅为9,和显示屏模块的厚度一致
        另外其他亮点在于延迟大,操作麻烦以及「电脑友好」(兔子语)
        ↑实际上运行的时候fps在20左右徘徊,然后cpu占用率都在78~92之间上下波动
        不过「才用了分配的4G内存的500M」(兔子如是说:我的九宫天阵用了3G)←我才明白为什么我生成一个终盘要二十分钟


        IP属地:湖北8楼2015-11-08 21:06
        收起回复

          游戏开始的按钮在背后电路的右下方,浅灰色的输入是生成游戏,灰色的输入是强制清除,强制清除时可能会出现卡顿,所以请耐心等待...


          IP属地:湖北9楼2015-11-08 21:10
          回复
            ↑以上关于配置的内容其实因人而异,事实上同一个存档我和兔子,resens,吸管玩起来是不同的感受,我玩起来是卡的一笔各种卡顿,吸管他们反映的是"很流畅,没有卡顿"所以...配置壕自动绕行


            IP属地:湖北11楼2015-11-08 21:24
            回复
              接下来开始介绍显示屏模块

              某不知名的显示屏模块,作者为阿散x镍钶(18禁内容,未成年请绕行)
              召唤镍钶@Cvs10
              每个显示屏模块包含伪随机,处理水滴增大的部分,显示屏,水滴的进位输出四个功能,而在去掉屏幕后的体积为10*5*7=350blocks

              显示屏是全部由Ni来压缩的,显示屏电路体积为4*6*7=168blocks
              比起上个显示屏的方案,Ni不仅压缩了体积而且改变了输入的位置,模块能再次得到压缩主要得益于输入位置的改变0.0

              伪随机的部分是运用模加和投掷器-漏斗的组合来实现的,思路由阿散提供,由Ni和阿散一起压缩出来的伪随机
              体积为4*3*4=48blocks 可以输出四种不同信号强度的信号

              伪随机36次生成的结果,用来模拟全局生成(由于十滴水总共有6*6=36cell),从测试结果来看还是比较容易让人接受的

              处理水滴变大的运算电路,由Ni和阿散经过多次压缩出来的运算电路,体积为6*3*5=90blocks,与旧版的方案有所不同
              1、所用的比较器环修改为了单片的方案 [4*3*1=12blocks]
              2、修改了运算的方法,将n-1后输出取反的改成了4-n,有效的减少了体积
              3、由于Ni修改了显示屏输入,所以不需要比较器减法来进行衰减,直接利用红石传输过程中信号强度的衰减


              整个显示频的结构
              模红化的处理使模块摆脱了移位寄存器,而处理速度也很高
              具体的模块信息详见The Display of Tendrops Mark II [10*5*7=350blocks]
              http://tieba.baidu.com/p/3950892592


              IP属地:湖北13楼2015-11-08 21:48
              收起回复
                稍微讲一下伪随机的原理
                这个伪随机的方案依然是基于投掷器随机之上的,通过可堆叠物(红石)和不可堆叠物(床)来输出1,3两种不同的信号
                其中一个输出进行-2的操作,最后一个漏斗会输出1,3两种信号,一个漏斗输出1,0两种信号,运用模加将两个输出相加,即可得到1~4四种不同的信号,将输出-1后得到0~3种不同信号,对应水滴的三种状态(第四种为无水滴)
                其中比较有意思的是,-1的操作是在模加中完成的,公式为
                (X-1)-(X-A-B)=A+B-1
                只需要在电源上做修改就可以了

                全局生成的测试


                IP属地:湖北14楼2015-11-08 21:57
                回复
                  接下来讲一下制作思路
                  在做好了显示屏的模块之后,接下来要解决的问题就是「传递给相邻的水滴」
                  如何确保只传递给最近的水滴而不是整行或者整列,就需要在进位线上下功夫
                  首先使用双向进位线的话会比较难处理,所以拆成了四条,每个方向的传递各一条
                  首先对于该单元格进行判定,若该单元格有水滴的话,则阻断通往下一格单元格的进位线
                  阻断的方法有很多种,例如中继器的锁存模式,活塞阻断,改变红石线的指向,用比较器的减法/比较模式
                  我采用的是比较器减法的那一种方案
                  而对于两个飞溅水滴同时给一个单元格加水的情况,在原版的游戏中是只有执行一次加水操作的,而传递进位信号阿散使用的是脉冲信号,两个同时到达的脉冲信号最终会合并为一个,从而只执行一次加水操作


                  IP属地:湖北17楼2015-11-09 00:42
                  回复


                    然后上存档吧
                    http://pan.baidu.com/s/1pJ5XfUb
                    制作的时候使用的是1.8版本,虽说该电路不含有1.7读取不了的方块或者物品,但是为了稳定起见还是请大家使用1.8版本打开,用1.8以下的版本有很大的可能性会丢失容器内的物品,到时候是使用不了的=.=


                    IP属地:湖北19楼2015-11-09 00:54
                    回复
                      http://www.bilibili.com/video/av3716475
                      感谢@夼枼L吸管 录制的视频以及后期处理


                      IP属地:湖北来自Android客户端30楼2016-02-01 00:59
                      回复