Referencias, objetos e constructors

1 resposta
Z

Olá pessoas, sou iniciante em java e estou com algumas dúvidas relacionadas a objetos e referências…

Estou criando um jogo de cartas pra android utilizando a libgdx. Tenho 3 classes:
a principal GameScreen.java, a LoadStuff.java e a CpuAI.java

Na GameScreen eu crio uma referência com LoadStuff ls = new LoadStuff(stage); e chamo o método ls.novaRodada();
que carrega as imagens e adiciona o listener pra “touch” nas mesmas.
Na CpuAI eu tenho um método que checa o que foi jogado pelo player e faz alguma outra ação, e depois deve iniciar uma novaRodada.

Então pra tentar resumir o que estou tentando fazer é

GameScreen -> ls.novaRodada() -> cpuAI.testaJogada() -> ls.novaRodada()

O problema é quando o cpuAI tenta chamar o ls novamente, não sei como devo fazer para não acontecer NullPointerException … eu sei o básico sobre constructors e que na teoria poderia fazer no CpuAI algo como

public CpuAI(LoadStuff ls){

this.ls = ls;

}

mas isso me parece estranho pois teria que primeiro passar o LoadStuff ls criado no GameScreen para o proprio LoadStuff através de um constructor e depois passar o mesmo pro CpuAI, o que provavelmente causaria outros problemas.

Provavelmente a pergunta certa é “como eu acesso um método da classe que chamou a outra, por essa outra?”

ok, acho que ficou mais confuso ainda… se alguém entendeu o que preciso e puder me ajudar agradeço bastante e se precisarem que eu explique de outra forma me avisem por favor.

(acho que não foi uma boa ideia eu querer pular do hello world pra criação de um jogo :XD: )

1 Resposta

Z

Resolvi de uma outra forma, alterei o método testaJogada pra returnar um valor

e na LoadStuff alterei pra

if (cpuAI.testaJogada() == valor) {
novaRodada();

dessa forma não precisei chamar o método pela cpuAI.

Está funcionando como eu queria e acredito estar mais correto dessa forma mas ainda não sei como fazer da maneira que perguntei anteriormente.

Apenas por curiosidade e caso eu precise dessa informação no futuro, ainda aguardo resposta :slight_smile:

Criado 26 de abril de 2013
Ultima resposta 26 de abr. de 2013
Respostas 1
Participantes 1