Cara,
Deve não estar desenhado,vc deve ter esquecido de pintar, veja o código completo abaixo:
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;
public class JogoGameCanvas extends GameCanvas implements Runnable{
private Graphics g = getGraphics();
private Sprite spriteBoteco;
private TiledLayer fundo;
private boolean move;
//sequência de imagem que queres que sejam visualizadas
private int arraySEquencia[]={0,1,2};
public JogoGameCanvas(){
super(true);
try {
spriteBoteco = new Sprite(Image.createImage("/moveDireita.PNG"),24,35);
spriteBoteco.setFrameSequence(arraySEquencia);
} catch (IOException e) {
e.printStackTrace();
}
montarMapa();
Thread t = new Thread(this);
t.start();
}
private void montarMapa(){
int larguraFigura = 16;
int alturaFigura = 16;
int cenario[][] = {
{0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1}};
try{
Image imagem = Image.createImage("/mapa.png");
fundo = new TiledLayer(colunasMatriz,linhasMatriz,imagem,larguraFigura,alturaFigura);
for(int i=0; i < cenario.length; i++){
for(int j=0; j < cenario[i].length; j++){
fundo.setCell(j, i, cenario[i][j]);
}
}
}catch(IOException e){
System.out.println("Imagem nao encontrada");
}
}
private void desenhaMundo(){
// desenho o fundo
fundo.paint(g);
spriteBoteco.setPosition(getWidth()/2,getHeight()/2); // insere boneco no meio
spriteBoteco.paint(g);
flushGraphics();//pega o que ta no buffer e mostra na tela
}
private void atualizaMundo(){}
private void trataEventosTeclado() {
int key = getKeyStates();
if ((key & LEFT_PRESSED) != 0) {
move=true;
try {
spriteBoteco.setImage(Image.createImage("/moveEsquerda.PNG"),24, 34);
spriteBoteco.setFrameSequence(arraySEquencia);
} catch (IOException e) {
e.printStackTrace();
}
} else if ((key & RIGHT_PRESSED) != 0) {
move=true;
try {
spriteBoteco.setImage(Image.createImage("/moveDireita.PNG"),24, 35);
spriteBoteco.setFrameSequence(arraySEquencia);
} catch (IOException e) {
e.printStackTrace();
}
} else if ((key & UP_PRESSED) != 0) {
//spriteBoteco.nextFrame();
} else if ((key & DOWN_PRESSED) != 0) {
}
nextFrame();
}
private void nextFrame(){
if(move){
spriteBoteco.nextFrame();
if(spriteBoteco.getFrame() == 2){
move = false;
}
}
}
public void run() {
while(true){
trataEventosTeclado();
atualizaMundo();
desenhaMundo();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Agora seria bom tu estudar a classe LayerManager. Ela te oferece algumas vantagens quando se trabalha com sprites. O exemplo acima é só para visualizar e mexer um bonequinho.
flw?
Abraços!