为了得到一个彩色弹幕,首先,我们为贴图准备一个二维平面
在这段代码中,我们传入了一个VertexConsumer对象,并为其定义了四个在边长为size的正方形的顶点。传入了一个color值,通过Color对象拿到r,g,b三个分量并赋予这个平面。
1 | private static void renderSquare(VertexConsumer consumer, Matrix4f matrix4f, Matrix3f matrix3f, int i, float size,int rgb) { |
接下来,一个彩色弹幕,有外围色彩部分和中心白色部分,所以我们需要有两个白色贴图和对应的RenderType对象
1 | public static final ResourceLocation TEXTURE_IN = new ResourceLocation("lively_danmaku", "textures/entity/danmaku_in.png"); |
在render方法中,我们需要对这个平面进行旋转以正对玩家
1 | poseStack.mulPose(this.entityRenderDispatcher.cameraOrientation()); |
最后把一个外环绘制在特定颜色遮罩的平面上来实现彩色环,把中心白色部分绘制在白色遮罩上。
1 | VertexConsumer vertexConsumer1 = pBuffer.getBuffer(RENDER_TYPE_IN); |