[resolvido]Erro ao montar cenário

Ola pessoal,
Não estou conseguindo montar meu cenário, pois sempre diz que a imagem não foi encontrada.
Alguém pode me ajudar?

Método de montar o cenário

private void montarMapa(){
		int colunasMatriz = 10;
		int linhasMatriz = 4;
		int larguraFigura = 16;
		int alturaFigura = 16;
		int cenario[][] = {
			{0,0,0,0,0,0,0,0,0,0},
			{1,1,1,1,1,1,1,1,1,1},
			{0,0,0,0,0,0,0,0,0,0},
			{1,1,1,1,1,1,1,1,1,1}};
		try{
			Image imagem = Image.createImage("/mapa.PNG");
			TiledLayer fundo = new TiledLayer(colunasMatriz,linhasMatriz,imagem,larguraFigura,alturaFigura);
			for(int i=0; i < linhasMatriz; i++){
				for(int j=0; j>colunasMatriz; j++){
					fundo.setCell(j, i, cenario[i][j]);
				}
			}
		}catch(IOException e){
			System.out.println("Imagem nao encontrada");
			
		}
	}
	

Método Run

public void run() {
		while(true){
			montarMapa();
			 try {
					Thread.sleep(200);
				   } catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				   }
			
		}
		
	}

Ué, então o problema está na sua imagem :roll:
Em que pasta vc colocou a imagem?

a imagem está na pasta res do projeto,
só pode ser esse o erro?

o nome está igual ao passado no createImage?
até a extensão em maiúsculo?

consegui fazer com que ele parace de informar que a imagem não foi encontrada,
era o nome da extensão que na imagem estava minúsculo e eu estava passando maiúsculo.
Porém, isso não fez com que o mapa fosse criado, fica apenas uma tela branca.

Pronto cara, o erro ta bem na comparação j>0

for(int i=0; i < linhasMatriz; i++){   
                for(int j=0; j>colunasMatriz; j++){   
                    fundo.setCell(j, i, cenario[i][j]);   
                }   
            }   

Nunca vai conseguir preencher as colunas! :lol:
mas é isso mesmo fica frio, qualquer duvida estamos por aqui!.

Cara, continua a mesma coisa.
tela branca.

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!

No caso a classe LayerManager seria a melhor classe para se fazer jogos?
e a Tiled seria uma espécia de quebra galhos?

Cara a classe LayerManager fornece um mecanismo conveniente para gerir os vários elementos visuais de um jogo (sprites e camadas de azulejos), tornando a camada adequada na ordem correta.
Tenho certeza que após dar uma olhada nesse link vai compreender melhor:
www.java.net/pub/a/today/2005/07/07/j2me3.html

Existe possibilidades de eu ter um cenário ja completo, e adiciona-lo o mesmo dessa mesma forma com matriz?ou existe outro meio?