minecraft吧 关注:2,447,307贴子:30,599,890

在mc里用粒子生成图像

只看楼主收藏回复


这一切还要从一直蝙蝠说起……咳咳


回复
1楼2020-03-04 15:24
    众所周知,mc中dust粒子是唯一一个可以用命令调色的粒子
    /particle minecraftdust <R> <G> <B> <透明度> <x> <y> <z> ……
    其中<R><G><B>和<透明度>为粒子颜色的四个参数,但值得注意的是,mc里的这四个参数的范围并不是常规的0-255而是0-1。每个RGB通道的数值会先被乘以各自独立的随机倍率,范围为0.8-1.0,然后再被乘以一个共同的随机倍率,范围为0.6-1.0。随后每个通道的数值会被各自转换成一个字节。舍弃小数部分。


    收起回复
    2楼2020-03-04 15:32
      dust是什么


      收起回复
      3楼2020-03-04 15:35
        因此我们可以扫描一张图片的每一个像素点获取RGB值,然后除以255得到的就是dust的RGB参数
        (由于楼主电脑技术太烂,又不懂编程,以下内容求大佬们不要喷我qwq)


        收起回复
        4楼2020-03-04 15:36
          马赛克中的马赛克


          收起回复
          来自Android客户端5楼2020-03-04 15:47

            如果要把每一个像素全部扫描的话会卡到爆炸,所以这里我就直接
            先把图片插到image上(不要问我为什么用这种朴素的方法……不懂编程不会算法)并限制长宽的最大值(如果按输出大小直接放到图片框里显示出来就太小了),如果超过了就按比例缩小,然后用paintpicture方法按比例缩小放到图片框里


            回复
            6楼2020-03-04 15:47
              接下来就逐行扫描picture里的内容,我们就可以通过计算得到这个像素的颜色R=color mod 2^8,G=color mod 2^16 \ 2^8,B=color \ 2^16,注意这里得到的数值需要除以255才是dust的参数,透明度为1,然后一波拼凑猛如虎
              这里设定为1格方块内4x4个粒子,如果粒子过于密集或稀疏效果看起来不是很好。由于dust的delta值mc会自动修正,这里都填0就可以了,速度和数量我弄得分别是0和1(这两个值不宜过大)。

              PS:由于vb的蜜汁算法,所有0~1的小数全部不会显示
              个位数的0,还有小数位数太多会表示为科学计数法,所以就强行format转换成特定格式的字符串……


              回复
              7楼2020-03-04 16:07
                直接循环的话cpu容易爆掉(况且我的配置太烂了),这里实在没什么办法,只好借助timeGetTime在计算一定次数后先doevents,还有text似乎显示不了这么多字,这里用的richtextbox输出,最后保存成函数文件,在游戏里运行就可以啦!


                回复
                8楼2020-03-04 16:13
                  竖版显示,分辨率好低的亚子,但是调高了会更卡


                  回复
                  9楼2020-03-04 16:18
                    果然,秒沉


                    回复
                    来自Android客户端10楼2020-03-04 16:27
                      d!


                      回复
                      11楼2020-03-04 16:34
                        不愧是小吧,水贴的方式都不一样


                        回复
                        来自Android客户端12楼2020-03-04 16:36
                          蓝色的东西呢


                          收起回复
                          13楼2020-03-04 16:38
                            看来我要把那张粒子照发出来才行了!


                            回复
                            来自Android客户端14楼2020-03-04 16:41
                              另:咳嗽了,铐走


                              收起回复
                              来自Android客户端15楼2020-03-04 16:42