minecraft吧 关注:2,543,936贴子:31,810,888

在mc里用粒子生成图像

只看楼主收藏回复


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


IP属地:美国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。随后每个通道的数值会被各自转换成一个字节。舍弃小数部分。


    IP属地:美国2楼2020-03-04 15:32
    收起回复
      dust是什么


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


        IP属地:美国4楼2020-03-04 15:36
        收起回复
          马赛克中的马赛克


          IP属地:上海来自Android客户端5楼2020-03-04 15:47
          收起回复

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


            IP属地:美国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转换成特定格式的字符串……


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


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


                  IP属地:美国9楼2020-03-04 16:18
                  回复
                    果然,秒沉


                    IP属地:美国来自Android客户端10楼2020-03-04 16:27
                    回复
                      d!


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


                        IP属地:内蒙古来自Android客户端12楼2020-03-04 16:36
                        回复
                          蓝色的东西呢


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


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


                              IP属地:广东来自Android客户端15楼2020-03-04 16:42
                              回复