本帖最后由 minecraft65535 于 2019-1-27 13:55 编辑 
我个人觉得音符颗粒的渐变色代码很好(就像下面那样↓)

代码(MC 1.7.10)
复制代码复制代码注意8~10行那个渐变色代码
红绿蓝三个颜色的值全都是由音高(p_i1217_8_)决定的,转换成公式为:
红= sin(x)*2π*0.65+0.35
绿= sin(x+1/3)*2π*0.65+0.35
蓝= sin(x+2/3)*2π*0.65+0.35
更直观地看(函数波形):
 
 
你们觉得MC中哪部分的代码写的很好呢?欢迎讨论~
我个人觉得音符颗粒的渐变色代码很好(就像下面那样↓)

代码(MC 1.7.10)
- net.minecraft.client.particle.EntityNoteFX
- public EntityNoteFX(World p_i1217_1_, double p_i1217_2_, double p_i1217_4_, double p_i1217_6_, double p_i1217_8_, double p_i1217_10_, double p_i1217_12_, float p_i1217_14_)
 
- {
 
-         super(p_i1217_1_, p_i1217_2_, p_i1217_4_, p_i1217_6_, 0.0D, 0.0D, 0.0D);
 
-         this.motionX *= 0.009999999776482582D;
 
-         this.motionY *= 0.009999999776482582D;
 
-         this.motionZ *= 0.009999999776482582D;
 
-         this.motionY += 0.2D;
 
-         this.particleRed = MathHelper.sin(((float)p_i1217_8_ + 0.0F) * (float)Math.PI * 2.0F) * 0.65F + 0.35F;
 
-         this.particleGreen = MathHelper.sin(((float)p_i1217_8_ + 0.33333334F) * (float)Math.PI * 2.0F) * 0.65F + 0.35F;
 
-         this.particleBlue = MathHelper.sin(((float)p_i1217_8_ + 0.6666667F) * (float)Math.PI * 2.0F) * 0.65F + 0.35F;
 
-         this.particleScale *= 0.75F;
 
-         this.particleScale *= p_i1217_14_;
 
-         this.noteParticleScale = this.particleScale;
 
-         this.particleMaxAge = 6;
 
-         this.noClip = false;
 
- }
红绿蓝三个颜色的值全都是由音高(p_i1217_8_)决定的,转换成公式为:
红= sin(x)*2π*0.65+0.35
绿= sin(x+1/3)*2π*0.65+0.35
蓝= sin(x+2/3)*2π*0.65+0.35
更直观地看(函数波形):
 
你们觉得MC中哪部分的代码写的很好呢?欢迎讨论~
哇!这个代码真的不错诶!学习了~
不过……我还没有刻意看过mc的代码……
不过……我还没有刻意看过mc的代码……
羡慕会代码的大佬们~~~
Abraham511 发表于 2019-1-27 13:52
羡慕会代码的大佬们~~~
你的那个彩色字可以考虑用这个算法
minecraft65535 发表于 2019-1-27 14:00
你的那个彩色字可以考虑用这个算法
嗯嗯这个用法我有想到~但是我不会写脚本,只会一点java
Abraham511 发表于 2019-1-27 13:52
羡慕会代码的大佬们~~~
求您不要再秀你的彩虹字了
当然是算法了(逃)
MC的算法优化好到爆炸
在平面函数里,x=x+n的替换意味着向x轴正半轴方向平移n个单位,然后sin函数的周期不记得怎么算了……