我试图在热门游戏“我的世界”中修改GUI绘图的行为。
目前,我有两个选项,重写游戏中的每一个GUI或重写他们的超类。因此,我将假设使用反射和修改超类将会更容易。
我有这个方法,它在编译的GuiScreen.class中处理绘图按钮和标签到屏幕
public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_)
{
int k;
for (k = 0; k < this.buttonList.size(); ++k)
{
((GuiButton)this.buttonList.get(k)).drawButton(this.mc, p_73863_1_, p_73863_2_);
}
for (k = 0; k < this.labelList.size(); ++k)
{
((GuiLabel)this.labelList.get(k)).func_146159_a(this.mc, p_73863_1_, p_73863_2_);
}
}
我想在每个for循环中添加一行
System.out.println("This for loop just run!")
只是暂时,一旦我把它弄下来,我确定我可以弄明白其余的。
我已经知道如何使用反射来访问私有方法并修改非静态/私有字段。与简单地调用方法相比,我将如何使用反射来修改或替换方法。