本帖最后由 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
羡慕会代码的大佬们~~~
你的那个彩色字可以考虑用这个算法