como eu faço em um jogo para carregar a prox. fase!?
é preciso tem um Canvas para cada faze!?
ou só reestartar o Canvas passando outros parametros!?
como eu faço em um jogo para carregar a prox. fase!?
é preciso tem um Canvas para cada faze!?
ou só reestartar o Canvas passando outros parametros!?
Eu costumo utilizar apenas um Canvas e o Strategy design pattern. Basicamente, utilizando seu caso como exemplo, você possui uma interface “Fase”, com diversas classes implementando ela, cada uma correspondendo à uma fase especifica dentro do jogo. O seu Canvas passa o processamento para uma dessas classes para criar a tela de jogo da fase em questão. Como mudar de fase? Colocando um outro objeto para o Canvas, no caso, uma instância da classe da nova fase.
De fato, utilizo esse pattern em N outras coisas dentro de um jogo. Desnecessário dizer que pode trazer alguns problemas de performance. É possível fazer tudo numa única classe, mas o código irá parecer uma “macarronada”. Note que isto depende da fase do jogo em questão!! Em alguns casos, mudando alguns valores de um objeto, já fará a classe alterá bastante.
Waocnek
bom … nao me esclareceu mto =\
mais eu estou tentando fazer dessa maneira
if(condiçao para mudar de fase){
System.out.println("Fim de Fase");
try{
stop(); // PARO A THREAD ATUAL
this.display = display; //CAPTURO DISPLAY
cowGameCanvas gameCanvas_n = new
// ESTANCIO OUTRO GAME CANVAS PASSANDO OS PARAMETROS DA OUTRA FASE
cowGameCanvas(Map.getN_mapa()+1, display);
gameCanvas_n.start(); //STARTO O NOVO GAME CANVAS
display.setCurrent(gameCanvas_n); //MANDO PARA DISPLAY
}catch(Exception ex){}
}
mais nao esta funcionando … o jogo trava =\
Você está criando uma nova thread ?? Se tentar dar start na que estava usando não vai funcionar. E veja se está reiniciando as variáveis necessárias, por exemplo algum booleano que cuida de loopings, se você setou falso e esqueceu de passar pra true.
espero estar indo no caminho certo =\
ainda nao tive sucesso galera =\
mas nao desisti! =D