Uma classe cuida do Sprite do personagem principal do jogo.
Eu quero que nessa classe exista uma thread que é iniciada assim que essa classe for instanciada. E essa Thread deve ficar em loop para que sejam feitos todas as checagens com esse Sprite, tipo (Colisão, Movimento, Input, etc).
Uma outra classe (classe que contém o loop principal do MIDlet) apenas instancia essa classe e desenha esse Sprite.
Assim:
public class MeuSprite extends GameCanvas implements Runnable {
public Sprite spriteJogador;
// etc
// etc
// configurações do sprite.
//...
//...
public MeuSprite() {
Threa t = new Thread(this);
t.start();
}
public void run() { // deve ser o loop da classe
// chamar métodos para checagem de colisão, input etc...
}
}
Agora a classe que tem o loop principal do MIDLet:
public class MeuGameCanvas extends GameCanvas implements Runnable {
// instanciando a classe MeuSprite.
MeuSprite sprite = new MeuSprite();
// Agora a Thread da classe MeuSprite deveria ser iniciada,
// pois o método start() é chamado dentro do construtor daquela classe.
// Ou mesmo assim eu devo chamar sprite.start() ?
public MeuGameCanvas() {
Thread t = new Thread(this);
t.start();
LayerManager layer = new LayerManager();
layer.append(sprite.spriteJogador);
}
public void run() { // aqui é o loop principal.
// chamar um metodo para desenhar na tela o sprite.
desenharSprite();
}
public void desenharSprite() {
sprite.spriteJogador.setLocation();
layer.paint(g, 0, 0);
}
}
Isso é possível?
