MineCraft Forge开发mod踩坑记录

  玩MineCraft的时候突发奇想,自己写个mod玩一玩。然后就开始了漫长的搜索mod开发文档和教程之路,配个环境配了一天,之后更是踩了好多好多坑。所以写个博客记录一下踩过的这些坑。

0.相关文档

  我的世界开发者中文指南-Forge模组开发

  Minecraft 1.12.2 Mod开发笔记——新的GUI(待完成)/HUD - 0.0~~ - 博客园

1.分辨率问题

  我笔记本是15.6英寸屏幕、win10系统,分辨率是1920*1080,缩放与布局设置的是125%。写完mod的“游戏主界面显示背包剩余箭量”这一功能,进行测试的时候发现屏幕分辨率获取错误,实际分辨率和获取到的显示分辨率不一致,这就导致本来该定位显示在右下角的数量跑到了显示范围之外,换句话说就是超出屏幕显示范围。踩坑踩了一天多才终于上了岸。

  之前获取分辨率代码如下,这样获取用的时候只有将界面尺寸设置为小才能正常显示,但是“小”又小到看不清。

Minecraft mc = Minecraft.getMinecraft();
//和mc.getFramebuffer().framebufferWidth获取到的宽度一致
int width = mc.displayWidth;
//和mc.getFramebuffer().framebufferHeight获取到的高度一致
int height = mc.displayHeight;

  正确用法如下。

@SubscribeEvent
public void onRender(RenderGameOverlayEvent event) {
    if (event.getType() == RenderGameOverlayEvent.ElementType.ALL) {
      return;
    }
    int screenWidth = event.getResolution().getScaledWidth();
    int screenHeight = event.getResolution().getScaledHeight();
    // 这里调用自定义的HUD函数
    // 不加这一行生存模式血量护甲这些会变乱码
    mc.renderEngine.bindTexture(Gui.ICONS);
}

猜你喜欢

转载自www.cnblogs.com/dream0-0/p/13175593.html