2015-04-11 2 views
0

Эй У меня проблемы с получением информации из файла настроек в libgdx. Я помещал карту с некоторыми коордами, чтобы я мог позиционировать некоторые вещи, но когда я получаю карту из файла настроек (который получает весь файл, а не только карту, которую я вставляю), и я не могу читать координаты, которые Я вставил.
Я могу получить ключи с карты без проблем, но когда я пытаюсь получить доступ к значению с карты, я получаю ошибку времени выполнения. Java.lang.String не может быть отброшен. Я пробовал различные значения, как Vector2, и Поплавок [], но я получаю ту же ошибкуПоместите и получите карту от предпочтений Libgdx

Heres мой код:

public class SetSettings { 
private Actor actor; 
private Actor hit; 
private Sprite sprite; 
private Sprite sprite2; 
private Rectangle rect; 
private boolean customHit = false; 
private ShapeRenderer render = new ShapeRenderer(); 
Array<Actor> actors = GameScreen.buttons.stage.getActors(); 

public SetSettings() { 
    setOriginal(); 
    setCustom(); 
    rect = new Rectangle(); 
} 

public void setOriginal() { 
    learnGame.ass.settings.get().clear(); 
    float height = Gdx.graphics.getHeight(); 
    float width = Gdx.graphics.getWidth(); 
    // ui settings 
    java.util.Map<String, Coords> map = new HashMap<String, Coords>(); 
    map.put("hpBar", new Coords(width - (learnGame.ass.hpBar.getWidth() * 1.02f), height - (height * .076f))); 
    map.put("hpBase", new Coords(learnGame.ass.hpBar.getX(), learnGame.ass.hpBar.getY())); 

    for (Entry<String, Coords> key : map.entrySet()) 
     System.out.println(key.getValue().x); // works fine here 

} 

public void setCustom() { 
    java.util.Map<String, ?> amap = learnGame.ass.settings.get(); 
    for (Entry<String, ?> key : amap.entrySet()) { 
     if (key.getValue() instanceof Coords) { 
      Coords coords = (Coords) key.getValue(); 
      float x_value = coords.x; 
      float y_value = coords.y; 
      System.out.println("6" + key.getKey()); 
      System.out.println("" + x_value);// <-----------error here -- java.lang.String cannot be cast to anything.. 

    } 

} 

public class Coords { 
    float x; 
    float y; 

    public Coords(float x, float y) { 
     this.x = x; 
     this.y = y; 
    } 
} 

}

+0

Можете ли вы опубликовать точное полное сообщение об ошибке? – m0skit0

+0

Вы используете [libgdx preferences] (https://github.com/libgdx/libgdx/wiki/Preferences) формат? или вы внедрили свое собственное хранилище? – harshtuna

ответ

0

Проверьте в API док - libgdx не поддерживает массив или коллекции или объектов (кроме строки) в libgdx preferences. Если вы намерены использовать именно формат libgdx, рассмотрите возможность сглаживания сложной структуры в связанном массиве строк или примитивных типов.

preferences.putFloat("hpBar_x", 123f); 
preferences.putFloat("hpBar_y", 456f); 
+0

Dang alright, я просто подумал, что могу положить карту с чем-нибудь, что мне захотелось:/ладно, я думаю, мне нужно это сделать, спасибо! – blockay

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

  • Нет связанных вопросов^_^