Jump to content

Bem vindo à Unidev
Registre para ter acesso a todos os recursos do site. Uma vez registrado e logado, você poderá criar tópicos, postar em tópicos já existentes, gerenciar seu perfil e muito mais. Se você já tem uma conta, faça login aqui - ou então crie aqui uma conta agora mesmo!




Photo

Criando arquivos Json no Libgdx

Posted by Zaraki , 25 janeiro 2015 · 2.012 Visualizações

Jason (JavaScript Object Notation) é um modo fácil e leve de troca de dados entre sistemas, ótimo para armazenar configurações de Objetos. Pode-se dizer que é até mais leve que o XML já que seu armazenamento é extremamente simples.

Neste artigo rápido vou mostrar como salvar seus objetos em um arquivo.json e posteriormente abri-lo usando a biblioteca Libgtx :

Primeiro criamos o objeto a qual querermos salvar, vamos supor que seja um item genérico dentro de seu game, que pode assumir qualquer forma, por exemplo uma espada.

Vou chamar essa classe de meu objeto em MeuObjeto terá um id e o nome do objeto, apenas isso para não complicar.
Ficando a classe assim :D :
package com.gamesdobrasil.utils.balao;

public class MeuObjeto {
	
	//variaveis 
	int id;
	String nome;
	
	//Construtores
	public MeuObjeto(int id, String nome) {
		super();
		this.id = id;
		this.nome = nome;
	}
	
	///Gets e Sets
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}

}
Okay passamos a usar esse objeto em algum lugar de seu jogo vamos supor que seja uma banana que enche a vida de quem pegar :3 . Então declaramos e instanciamos o objeto criando-o no "jogo ".
MeuObjeto banana = new MeuObjeto(0,"Banana");
Agora criamos o Json alias um JsonObject ja que vamos teoricamente salvar o Objeto
  Json jsonObject = new Json(OutputType.json);
Usando o método toJson podemos ver como sera salvo o objeto no arquivo texto antes mesmo de salvar.
System.out.println(jsonObject.toJson(banana)); 
O arquivo texto ou código Json ficara assim no depurador usando o comando a cima:
{"nome":"Banana","id":0}
É esse dado que precisamos armazenar para poder carregar futuramente, mas como armazena-lo? É ai que entra o Objeto FileHandle.
FileHandle ArquivoSalvo = Gdx.files.local("Data/bananaSalvo.json");
ArquivoSalvo.writeString(jsonObject.toJson(banana), false);
Escrevemos o aquivo na forma de texto na pasta Data de onde se encontra o executável, caso essa pasta não exista sera criada pelo FileHandle. Pronto temos um arquivo com o Objeto Banana salvo :wub: ... :mellow: Mas e se você quiser abrir esse objeto posteriormente? :huh:

Calma! Já vamos descascar essa banana :P . Segue o código abaixo : ;)
FileHandle AbrindoArquivoSalvo = Gdx.files.local("Data/bananaSalvo.json");
		
	Json outroJson = new Json();
	MeuObjeto banana2;
	banana2 = new MeuObjeto();
	banana2 = outroJson.fromJson(MeuObjeto.class, AbrindoArquivoSalvo);
	System.out.println(banana2.getNome()); 
Agora abrirmos o arquivo
Criamos um novo Json apenas para abrir o arquivo e diferenciar do outro Json, criamos outra banana que ira assumir as configurações da antiga banana, usando o método fromJson pegamos o arquivo e passamos suas configurações para a banana2
System.out.println(banana2.getNome());
O código acima só serve para mostrar o nome da Banana que é Banana mesmo :D indicando que tudo deu certo. Json é muito bom para criar botões de salvar progresso dentro do game, mapas e armazena configurações. Espero ter ajudado alguém -_-

  • daniwing likes this



Boa

    • Zaraki likes this
  • Report

:D Vlw

  • Report

Pesquisar em Meu Blog

Comentários Recentes