2013-09-06 3 views
0

Я пытаюсь написать простую игру в libGDX, но эта проблема останавливает весь процесс создания этой игры. Вот два класса.Возвращение одиночной строки из массива

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; 

} 

и второй класс базы данных содержит вопросы

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"; 

все, это нормально.

+0

что такое libgdx имеет отношение к этому –

ответ

1

Вам необходимо изменить блок инициализации на статический блок инициализации.

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

Если не будет создавать новый экземпляр класса Database, как:

Database db = new Database(); 

динамический блок инициализации не будет вызываться. Это причина, почему вам нужно использовать статический блок инициализации, который вызывается с классом.

+1

Спасибо, простая ошибка. Я знаю это: P –

+0

@Evelan, пожалуйста. – Sajmon

1

Вы можете объявить массив в Database класса как:

public class Database { 

private static String questions[] = new String[]{ 
    "Some question1", "Some question2" 
}; 


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

} 

Затем он возвращает String вы хотите.

+0

Да, я знаю, но для меня моя форма кода более читабельна :) и это стало причиной ошибки: S –

Смежные вопросы