BOM DIAAAA
Venho a tentar tirar uma dúvida com vocês se possível,se puder me ajudar eu fico muito grato.
Eu estou criando um jogo em java de rpg porém me encontro em uma situação que não consigo sair dela,segue as informações a seguir…
O jogo tem:
Super Classe Heroi
int pontosDeVida
String Nome
Classe Mago extends Heroi
int pontosDeMagia
Classe Guerreiro extends Heroi
int forca
Classe Arqueiro extends Heroi
Depois que faço todos os procedimentos de gets sets e etc…
Aí vem a classe:
GeradorDeHerois
public Heroi retornarHeroi(ClassesEnum Classe){ // ClassesEnum Classe é um enumerador que usei para tentar deixar o código mais refinado.
Heroi retorne = null;
switch(Classe){
case MAGO:
retorne = new Mago (); // instancia um mago
break;
case GUERREIRO:
retorne = new Guerreiro(); // instancia um guerreiro
break;
case ARQUEIRO:
retorne = new Arqueiro(); // instancia um arqueiro
break;
}
return = retorne;
}
O problema vem agora…
Eu crio a classe Batalha
public class Batalha () {
public void EscolhaSuaClasse(){
escolha = SuaClasse();
Heroi retorne = null;
switch (escolha){
case 1:
retorne = Mago;
break;
case 2:
retorne = Guerreiro;
break;
case 3:
retorne = Arqueiro;
break;
default:
Imprime ("opção invalida")
break;
}
}
Ai eu dou a opção pro usuario escolher a classe que ele quer começar o jogo,
depois que o usuario escolhe a classe (mago,guerreiro ou arqueiro), a classe é instanciada automaticamente…
o problema de forma nítida vem agora…
como vou continuar o programa? acessar os metodos e atributos do heroi que foi instanciado,sendo que não sei qual classe o usuario escolheu?
por exemplo … digamos que vc entra nesse switch e escolhe mago…
o programa instancia o mago…
por eu programador não ter como saber se vc vai escolher mago,arqueiro ou guerreiro eu não consigo acessar os atributos e metodos depois que sai do escopo do switch
o que eu queria fazer era de alguma forma guardar essa instancia que o usuario vai gerar
e depois conseguir acessar os metodos e atributos dessa instancia.
mas até hoje eu não consegui achar nenhuma forma de fazer isso,jogar uma instancia em um lugar e resgatar ela depois para usar .
complementando… se fosse só uma classe,suponhamos,guerreiro!!
ai eu saberia que ele escolheria o guerreiro obrigatoriamente,ai depois era só continuar a batalha normalmente
exemplo:
public void luta () {
while (Guerreiro.getHp > 0 && InimigogetHp > 0){
/// comandos para a batalha acontecer
}
}
Se vocês souber a saída desse problema e puder me enviar o modelo do codigo/metodo que vou precisar eu agradeço muito.