本教程将会教大家如何绘制HUD,(以在屏幕上绘制一个原版心为例子)

脚本位于client_scripts

首先,需要手动导入RenderSystem类

const $RenderSystem = Java.loadClass("com.mojang.blaze3d.systems.RenderSystem");

或者直接使用模组提供的RenderJSRenderSystem类(因为部分方法有注解并且无需导入)

本教程将会使用模组提供的RenderSystem

使用RenderJSGUI.addRender方法即可添加绘制

//const $RenderSystem = Java.loadClass("com.mojang.blaze3d.systems.RenderSystem");

RenderJSGUI.addRender(context=>{
    RenderJSRenderSystem.setShaderColorJS(1,1,1,1)//重置颜色
    RenderJSRenderSystem.setShaderTextureJS(new ResourceLocation("minecraft:textures/gui/icons.png"))//设置资源位置,这里使用了原版的"textures/gui/icons.png"
    var width = context.window.guiScaledWidth/2//x轴缩放中心
    var height = context.window.guiScaledHeight/2//y轴缩放中心
    RenderJSGUI.blitJS(context.poseStack,width,height,53,0,9,9)//在setShaderTextureJS里设置的材质中从(53,0)开始向右和向下截取9个像素
})

原版爱心在icon中的左上角点位于(53,0),长宽均为9

效果:如何绘制hud-第1张图片

渲染顺序和是否启用深度测试共同决定了图层,但是在hud可以不用考虑深度测试