goldsphere Дата: Вторник, 28 Апреля 2015, 15:15 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
В начале игры я гружу из локального файла данные о игроке
Код
XmlReader reader = new XmlReader(); FileHandle handle = Gdx.files.local("data/user.cfg"); if(Gdx.files.local("data/user.cfg").exists()){ String inputXmlString = new String(); inputXmlString = handle.readString(); XmlReader.Element root = reader.parse(inputXmlString); Array<XmlReader.Element> elements = root.getChildrenByName("player"); for(XmlReader.Element child : elements){ bestScore = Integer.parseInt(child.getChildByName("bestScore").getAttribute("value")); globalCoins = Integer.parseInt(child.getChildByName("money").getAttribute("value")); } }else{ try { handle.file().mkdir(); handle.file().createNewFile(); } catch (IOException e) { e.printStackTrace(); } bestScore = 0; }
И сохраняю в конце:
Код
StringWriter writer = new StringWriter(); XmlWriter xml = new XmlWriter(writer); try { xml.element("data").element("player") .element("bestScore") .attribute("value", bestScore) .pop() .element("money").attribute("value", globalCoins+coins) .pop() .pop() .pop(); } catch (IOException e1) { e1.printStackTrace(); } System.out.println(bestScore); try{ FileHandle handle = Gdx.files.local("data/user.cfg"); handle.writeString(writer.toString(), false); } catch(Exception e){System.out.println("error in the end");}
Это всё хорошо работает на пк и эмуляторе андройда. Но как только тестирую на реальном телефоне рекорд не сохраняется. Всегда обнуляется. Единственная разница в том, что на эмуляторе андрой версии 2.3.7, а на телефоне 4+ Не могу понять что я делаю не так, может ли это быть из-за версии андройда?
FinderX - Android Аркада
Сообщение отредактировал goldsphere - Вторник, 28 Апреля 2015, 15:15