最初に、私は Java を学ぼうとして本当にいじっているだけです。この時点でやりたいことは、文字列を画面に表示することだけです。
mod_Bite クラスと BiteGui クラスがあります。(バイトは勝手な名前です、当時食べてました)
//mod_Bite.java
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class mod_Bite extends BaseMod {
@Override
public String getVersion() {
return "1.0";
}
@Override
public void load() {
ModLoader.setInGameHook(this, true, true);
}
public mod_Bite() {
}
@Override
public boolean onTickInGame(float tick, Minecraft mc)
{
return true;
}
}
と
//BiteGui.java
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class BiteGui extends Gui {
private Minecraft mc;
public BiteGui(){
drawBiteGui();
}
public void drawBiteGui() {
FontRenderer fr = this.mc.fontRenderer;
drawString(fr, "Testing!", 5, 5, 0xffffff);
}
}
私が理解していないのは、それを作成する方法です。onTickInGame メソッドで BiteGui のオブジェクトを作成してみました (ティックごとに作成する必要はないと思いますが)
public boolean onTickInGame(float tick, Minecraft mc)
{
BiteGui biteObj = new BiteGui();
return true;
}
しかし、null ポインター例外があると表示されています。これは、私の知る限り、値が割り当てられていないもの、または何も指していないものを使用しようとしていることを意味します。私は明らかにここで何かをしていません。
編集:コードを変更しましたが、画面にとどまるのではなく、ティックごとにテキストが点滅することを除いて機能します。これは明らかに onTickInGame メソッドでオブジェクトを作成しているためですが、他の場所から Minecraft を初期化する方法がわかりません。
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class mod_Bite extends BaseMod {
@Override
public String getVersion() {
return "1.0";
}
@Override
public void load() {
ModLoader.setInGameHook(this, true, true);
}
public mod_Bite() {
}
@Override
public boolean onTickInGame(float tick, Minecraft mc)
{
BiteGui biteObj = new BiteGui(mc);
return true;
}
}
と
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class BiteGui extends Gui {
private Minecraft mc;
public BiteGui(Minecraft minecraft) {
this.mc = minecraft;
drawBiteGui();
}
public void drawBiteGui() {
FontRenderer fr = this.mc.fontRenderer;
drawString(fr, "Testing!", 5, 5, 0xffffff);
}
}