Olá pessoal, primeiramente eu gostaria de me desculpar pelo título, eu não consegui pensar em nada melhor.
Bom, eu gostaria de tirar uma dúvida em relação a POO, eu venho trabalhando em um pequeno projetinho de jogo de texto, e atualmente o jogo contem 3 Classes, a classe principal, classe player e a classe inventario. Eu estou enfrentado uma dificuldade que é quando o jogador consome um item, este item não é aplicado diretamente na classe player como deveria ser. O código a seguir explica melhor o que eu quero dizer.
public class Principal {
Inventario inv = new Inventario();
Player player = new Player();
public static void main(String args[]) {
new Principal().principal();
}
public void principal() {
//... Faz leitura da escolha do jogador
//Caso ele queira entrar no inventario
inv.inventario();
//... Faz leitura da escolha do jogador
//Caso ele queira ver sua vida
System.out.println("Sua vida é " + this.player.getVida());
}
}
public class Inventario{
Player player = new Player();
//Quantidade de poções que o Jogador possui
private int qntPocao = 2;
//Quantidade de vida que cada poção recupera
private int hpRegenPocao = 30;
//Metodo onde mostra todas as opções do inventario
public void inventario() { //Não é o construtor
//... Faz leitura da escolha do jogador
this.usarPocaoHp();
}
//Utiliza o item poção de vida
private void usarPocaoHp(){
//Verifica se o jogador possui poções de vida
if(this.qntPocao > 0)
this.player.updateVida(hpRegenPocao);
else
System.out.println("Você não possui poções de vida!");
}
}
public class Player{
private int vida= 10;
//Atualiza a vida do jogador
public void updateVida(int vidaRecuperada){
this.vida += vidaRecuperada;
}
//Retorna a vida do jogador
public int getVida(){
return vida;
}
}
O pior é que eu entendo exatamente onde está o erro, eu não estou atualizando a vida na “mesma” classe player que se refere a classe principal. O que eu queria era que eu pudesse atualizar a vida do player na classe inventário, e esse valor fosse salvo na classe principal. Não sei se ficou muito claro o que eu quis dizer, mas desde já agradeço pela atenção.
