开坑-改变MC的游戏界面
事情起因
因为我的服务器是使用的外置登陆,因此之前写了一个启动器
自认为看着还行,But,经常有新玩家无法用该启动器启动游戏,因此流失了很多玩家
所以我就想能不能让玩家在启动后再登陆,以下是效果图
8说了,敲代码吧
提示:如果你没有任何编程基础,那么这篇文章可能不适合你,本篇文章将用Minecraft版本1.12.2,Forge版本2705做示例
如果你想写mod,那么想必你已经搭建好forge开发环境了,如果你还没有搭建,百度随便搜一下就有很多教程
新建一个mod项目
创建mod主类,名称随意,例如MyGUI就是我的主类名称
1 | "mygui",name = "MyGui") (modid = |
定义一个类,继承GuiScreen类
现在我们已经可以监听到主界面是否打开并且可以替换它了,但是我们需要有一个自己的GuiScreen来替换它
所以我们要新建一个类,类名可以自定义,我的是MyNewScreen,新建的类要继承GuiScreen类
1 | public class MyNewScreen extends GuiScreen { |
接着修改你的主类,修改监听事件中的代码,修改要替换的界面
1 |
|
这样我们就得到了一个空的界面,构建你的mods,放入你的mods文件夹,打开MC,你会发现原来的主界面变成了这样
漆黑的一片,什么都没有,因为你创建的只是一个空的界面,那么接下来就要给你的界面添加一些”控件”了
给你的界面“润色”
添加按钮
大概思路:重写initGui()方法,new一个你自己的按钮并把它加入到buttonList中
1 | public class MyNewScreen extends GuiScreen { |
代码中的this.width是当前mc窗口的宽度,this.width/2则是窗口宽度的一半
同样的,还有窗口的高度this.height,这样可以轻松的使按钮显示在屏幕中间位置
这里简单讲解一下GuiButton的参数
1 | new GuiButton(按钮id,按钮显示的位置x,按钮位置y,按钮宽度,按钮高度,按钮显示的文本); |
按钮id:随意一个int值,后面要用到
位置x与位置y:在mc窗口中的位置,mc窗口左下角是原点
宽度高度:字面意思
显示的文本: 字面意思。。。
现在可以再次测试你刚刚写的mod了,启动mc后你会发现按钮出现了,但是点击没有效果,那么现在就要给你的按钮添加事件了
例如这里我想让按钮按下后关闭mc
你需要重写**actionPerformed()**方法
1 | public class MyNewScreen extends GuiScreen { |
添加标签
待填坑。。。