0

libGDX で単純なゲームを作成しようとしていますが、この問題により、そのゲームの作成プロセス全体が停止します。ここに2つのクラスがあります。

public class Question {

private static float getFontX() {
    return Assets.font.getBounds(Database.getText()).width / 2;
}

private static float getFontY() {
    return Assets.font.getBounds(Database.getText()).height / 2;
}

public static void draw(SpriteBatch batch) {

    Assets.font.draw(batch, Database.getText(),
                             TOFMain.SCREEN_WIDTH / 2 - getFontX(),
                             getFontY() + 250 + TOFMain.SCREEN_HEIGHT / 2);
           //drawing some text from database on screen in the middle of screen;

}

2番目のクラスはデータベースで、質問が含まれています

public class Database {

private static String questions[] = new String[2];
{
    questions[0] = "Some question1";
    questions[1] = "Some question2";
}

static public String getText() {
    return questions[0];
}
}

に問題があります

return questions[0]

たとえばそこに書くと

return "This will work";

全て大丈夫。

4

2 に答える 2

1

初期化ブロックを静的初期化ブロックに変更する必要があります。

static {
    questions[0] = "Some question1";
    questions[1] = "Some question2";
}

次のような Database クラスの新しいインスタンスを作成しない場合:

Database db = new Database();

動的初期化ブロックは呼び出されません。これが、クラスで呼び出される静的初期化ブロックを使用する必要がある理由です。

于 2013-09-06T14:30:59.897 に答える