Minecraft Fabric 进阶教程 #2 绘制界面

简介: 绘制界面不需用注入Mixin

首发于Enaium的个人博客


绘制界面不需用注入Mixin

新建一个类

ExampleGui.java

继承Screen构造器

public ExampleGui() {
    super(new LiteralText(""));
}

绘制

这是绘制一个背景

绘制背景这种全部覆盖时要在super上面不然按钮或者其他东西会被背景盖住

@Override
public void render(int mouseX, int mouseY, float delta) {
    renderBackground();
    super.render(mouseX, mouseY, delta);
}

我们也可以添加一个按钮

@Override
public void init() {
    super.init();
    this.addButton(new ButtonWidget(20,20,100,20,"Done",(action)->{  

    }));
}

打开界面

将上集绘制的按钮的action改为打开这个界面

@Inject(at = @At("HEAD"), method = "init()V")
private void init(CallbackInfo info) {
    this.addButton(new ButtonWidget(20,20,200,20,"233",(action)->{
        MinecraftClient.getInstance().openScreen(new ExampleGui());
    }));
}

打开界面后我们发现只能用ESC来关闭界面

接下来我们要写返回上一界面的功能

在构造器里传入上个界面Screen

private Screen screen;
public ExampleGui(Screen screen) {
    super(new LiteralText(""));
    this.screen = screen;
}

打开界面 MinecraftClient.getInstance().openScreen(new ExampleGui(this));

将按钮的action写为MinecraftClient.getInstance().openScreen(screen);

运行

s2-1

完成

目录
相关文章
Minecraft Fabric 教程 #8 添加附魔书
这就创建了一个FireBoom附魔书 onTargetDamaged //当目标被攻击 在mc FireballEntity类有一个 方法就是当火球碰撞了就创建一个火焰爆炸的效果
83 0
Minecraft Fabric 教程 #9 添加盔甲
参数一 材料名字 参数二 耐久倍数 参数三 盔甲数也就是穿上盔甲加的盔甲值 参数四 使用的时候发出的声音 参数五 耐性
76 0
Minecraft Fabric 教程 #9 添加盔甲
Minecraft Fabric 教程 #5 添加语言文件
lang也就是你模组的翻译比如 中文简体 zh_cn 中文正體 zh_tw 英文 en_us
87 0
|
开发框架 .NET 区块链
Hyperledger fabric部署链码(五)初始化与链码升级
fabric部署chaincode-go(智能合约)系列之五
214 0
|
测试技术 Go 区块链
Hyperledger fabric 测试环境部署
Hyperledger fabric 测试环境部署及相关问题解答
283 3
Hyperledger fabric 测试环境部署
|
JavaScript 测试技术 Go
Hyperledger fabric部署链码(一)打包链码
fabric部署chaincode-go(智能合约)系列之一
263 0
|
存储 JSON 安全
Hyperledger fabric智能合约编写(一)
本篇文章主要对链码编写的主要思路和部分API进行梳理。
186 1