Rodando uma aplicação no netbeans

7 respostas
Naruto

Bom dia.. galera... eu peguei um exemplo de uma pessoa em um site.. e gostaria de mostrar ele como exemplo em uma apresentação.... so que nem conseguir rodar ele eu to... sera que alguem poderia me ajudar...
segue a baixo os fontes... não são de minha autoria.. apenas quero mostrar eles como exemplo

classe ObejtoJogo
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!
//! http://dukemidp.codigolivre.org.br
//!
//! Autor: Gabriel Ambrósio Archanjo
//! email: [email removido]
//! 2005
//!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;


public abstract class ObjetoJogo
{
	protected Image image;
	protected int px;
	protected int py;
	protected int comprimento;
	protected int altura;

	public abstract void meDesenha(Graphics g);

	public int getPx()
	{
		return px;
	}
	public void setPx(int x)
	{
		px = x;
	} 
	public int getPy()
	{
		return py;
	}
	public void setPy(int y)
	{
		py = y;
	}

	public int getComprimento()
	{
		return comprimento;
	}
	public int getAltura()
	{
		return altura;
	}
}
Classe Veiculo
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!
//! http://dukemidp.codigolivre.org.br
//!
//! Autor: Gabriel Ambrósio Archanjo
//! email: [email removido]
//! 2005
//!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class Veiculo extends ObjetoJogo
{
	private int	tipo,
		 	velocidade,
 			velocidadeMaxima,
 			energia;
	
	public Veiculo()
	{
		tipo = 0;
		velocidade = 0;
		velocidadeMaxima = 0;
		energia = 0;
	}

	public Veiculo(Image i, int t, int x, int y, int veloM, int e)
	{
		super.image = i;
		super.comprimento = image.getWidth();
		super.altura = image.getHeight();

		super.px = x;
		super.py = y;
		
		tipo = t;
		velocidade = 0;
		velocidadeMaxima = veloM;
		energia = e;
	}

	public int getTipo()
	{
		return tipo;
	}
	public void incEnergia(int i)
	{
		energia+=i;
	}
	public void setEnergia(int i)
	{
		energia = i;
	}

	public int getEnergia()
	{
		return energia;
	}

	public void incVelocidade(int x)
	{
		if(velocidade+x <= velocidadeMaxima)
			velocidade+=x;
		else
			velocidade = velocidadeMaxima;
	}

	public void setVelocidade(int i)
	{
		velocidade = i;
	}
	public int getVelocidade()
	{
		return velocidade;
	}

	public void setVelocidadeMaxima(int i)
	{
		velocidadeMaxima = i;
	}
	public void meDesenha(Graphics g)
	{
		g.drawImage(super.image, super.px, super.py, Graphics.TOP | Graphics.LEFT);
	}
}
classe AutoEstrada
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!
//! http://dukemidp.codigolivre.org.br
//!
//! Autor: Gabriel Ambrósio Archanjo
//! email: [email removido]
//! 2005
//!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class AutoEstrada extends MIDlet{

	private Display display;
	private AutoEstradaCanvas autoEstradaCanvas; 

	public AutoEstrada()
	{
		display = Display.getDisplay(this);
		autoEstradaCanvas = new AutoEstradaCanvas();
	}

	protected void startApp(){
      		display.setCurrent(autoEstradaCanvas);
   	}
   	protected void pauseApp(){}
   	protected void destroyApp(boolean unconditional){}

   	public void exitMIDlet(){
      		destroyApp(false);
      		notifyDestroyed();
      
   	}
}
ClasseAutoEstradaCanvas
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!
//! http://dukemidp.codigolivre.org.br
//!
//! Autor: Gabriel Ambrósio Archanjo
//! email: [email removido]
//! 2005
//!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;

import javax.microedition.lcdui.game.GameCanvas;

import java.io.IOException;


public class AutoEstradaCanvas extends GameCanvas implements Runnable
{
	private Veiculo carroJogador;
	private Veiculo veiculoInimigo[];

	private final static int 	col1 = 46,
					col2 = 82,
					col3 = 116;

	private final static int 	MARGEM_DIREITA = 128,
					MARGEM_ESQUERDA = 36;

	/* mapa = numero de veiculos - (tipo, px, py)) */;
	private int mapa1[]={49,1,col1,60,1,col3,60,1,col2,-40,1,col3,-140,4,col1,-200,
				2,col2,-270,2,col2,-500,1,col3, -580, 2,col1,-630, 4,col2,-730,
				2,col1,-780,3,col1,-850,2,col1,-930,3,col2,-990,4,col1,-1100,
				1,col3,-1200,2,col2,-1300,4,col1,-1400,1,col2,-1490,2,col3,-1600,
				3,col1,-1700,3,col3,-1800,2,col2,-1890,1,col1,-1960,4,col3,-2120,
				1,col2,-2200,2,col1,-2270,2,col3,-2350,4,col1,-2450,1,col2,-2500,
				4,col1,-2650,4,col3,-2650,3,col1,-2750,2,col2,-2830,1,col1,-2900,
				3,col1,-3100,3,col3,-3300,3,col1,-3500,1,col3,-3600,2,col2,-3670,
				1,col2,-3750,4,col3,-3770,3,col1,-3870,2,col3,-3950,1,col2,-4070,
				1,col1,-4140,3,col3,-4220,2,col2,-4300,3,col3,-4390};
	private int mapa[];

	private final static int linhas[]={150,100,50,0,-50,-100,-150};

	private int placapy = 90;

	private Image	carro1,
			carro2,
			carro3,
			carro4,
			caminhao,
			placa,
			back;

	private int 	numVeiculos;

	private final static int 	sleepTime = 30,
					bordaEsquerda = 36,
					bordaDireita = 143;

	private int semaforo; /*	0 = apagado
					1 = primeiro vermelho
					2 = segundo vermelho
					3 = verde
				*/

	private int loopCounter;
	private boolean pausado;


	public AutoEstradaCanvas()
	{
		super(true);				/* constructor GameCanvas(boolean suppressKeyEvents)*/
		carregaImagens();

		iniciaJogo();

		new Thread(this).start();
	}

	private void iniciaJogo()
	{
		setMapa(mapa1);
		carregaMapa();

		carroJogador = new Veiculo(carro1, 0, col2,130, 130, 5);

		pausado = false;
		loopCounter=0;
		semaforo=0;
	}

	private void setMapa(int m[])
	{
		mapa = m;
	}
	private void carregaImagens()
	{
		try
		{
			carro1 = Image.createImage("/imagens/carro1.png");
			carro2 = Image.createImage("/imagens/carro2.png");
			carro3 = Image.createImage("/imagens/carro3.png");
			carro4 = Image.createImage("/imagens/carro4.png");
			caminhao = Image.createImage("/imagens/caminhao.png");
			placa = Image.createImage("/imagens/placa.png");
			back = Image.createImage("/imagens/back.png");
		}
		catch(IOException e)
		{
			System.out.println("Erro ao carregar Imagens");
			e.printStackTrace();
		}
	}

	private void carregaMapa()
	{
		Image img=null;
		int x,y;
		numVeiculos = mapa[0];
		veiculoInimigo = new Veiculo[numVeiculos];
		for(y=0, x=1; y<numVeiculos; x+=3, y++)
		{
			
			if(mapa[x] == 1)
				img = carro2;
			else if(mapa[x] == 2)
				img = carro3;
			else if(mapa[x] == 3)
				img = carro4;
			else if(mapa[x] == 4)
				img = caminhao;		

			veiculoInimigo[y] = new Veiculo(img, mapa[x], mapa[x+1], mapa[x+2], 100 ,3);
			veiculoInimigo[y].setVelocidade(10);
		}
	}

	private void desenhaVeiculos(Graphics g)
	{
		int x;
		carroJogador.meDesenha(g);

		for(x=0; x<numVeiculos; x++)
		{
			if(veiculoInimigo[x].getPy() +veiculoInimigo[x].getAltura() > 0)
				veiculoInimigo[x].meDesenha(g);
		}
	}

	private void andaVeiculos()
	{

		int x;
		int py_ant;
		int j_px, j_c, i_px, i_c, i_py, i_a;
		j_px = carroJogador.getPx();
		j_c = carroJogador.getComprimento();

		for(x=0; x<numVeiculos; x++)
		{

			i_px = veiculoInimigo[x].getPx();
			i_c = veiculoInimigo[x].getComprimento();
			i_py = veiculoInimigo[x].getPy();
			i_a = veiculoInimigo[x].getAltura();


			/***********************
		 	* Anda carro para fente
		 	***********************/
			veiculoInimigo[x].incVelocidade(1);
			py_ant = veiculoInimigo[x].getPy();
			veiculoInimigo[x].setPy(veiculoInimigo[x].getPy() + ((carroJogador.getVelocidade() - veiculoInimigo[x].getVelocidade())/5));
			
			if(colisaoVeiculos())
			{
				veiculoInimigo[x].setPy(py_ant);
				carroJogador.setVelocidade(60);
				carroJogador.incEnergia(-1);
			}



			/****************************
		 	* Desvia do carro do Jogador
		 	****************************/
			
			if(veiculoInimigo[x].getPy() > carroJogador.getPy())
			{
				if((i_px <= j_px && i_px+i_c > j_px) || (i_px >= j_px && i_px+i_c <= j_px+j_c))
				{
					if(j_px-j_c > bordaEsquerda)
						veiculoInimigo[x].setPx(veiculoInimigo[x].getPx() - 3);
					else
						veiculoInimigo[x].setPx(veiculoInimigo[x].getPx() + 3);
				}						
				else if(i_px+i_c >= j_px+j_c && i_px < j_px+j_c)
				{
					if(j_px+j_c+j_c < bordaDireita)
						veiculoInimigo[x].setPx(veiculoInimigo[x].getPx() + 3);
					else
						veiculoInimigo[x].setPx(veiculoInimigo[x].getPx() - 3);
				}
			}
			

			/************************
			 * Fecha carro jogador	*
			 ************************/
			if(veiculoInimigo[x].getTipo() == 3)
			{
				if(i_py+i_a > 0 && i_py < 60)
				{
					if(i_px < j_px)
					{
						if(i_px+3 > j_px)
							veiculoInimigo[x].setPx(j_px);
						else
							veiculoInimigo[x].setPx(i_px + 3);
					}
					else if(i_px > j_px)
					{
						if(i_px -3 < j_px)
							veiculoInimigo[x].setPx(j_px);
						else
							veiculoInimigo[x].setPx(i_px - 3);
					}
				}
			}
			
		}
				
	}

	private boolean colisaoVeiculos()
	{
		int 	j_px = carroJogador.getPx(), 
			j_py = carroJogador.getPy(),
			j_c = carroJogador.getComprimento(), 
			j_a = carroJogador.getAltura();

		int 	i_px,
			i_py,
			i_c,
			i_a;
		

		for(int x=0;x<numVeiculos;x++)
		{
			i_px = veiculoInimigo[x].getPx();
			i_py = veiculoInimigo[x].getPy();
			i_c = veiculoInimigo[x].getComprimento();
			i_a = veiculoInimigo[x].getAltura();

			if(!(i_py > -100 && i_py < 280))
				continue; 


			if((j_px <= i_px && j_px+j_c > i_px) || (j_px < i_px+i_c && j_px+j_c >= i_px+i_c) ||
				(j_px >= i_px && j_px+j_c <= i_px+i_c) || (i_px >= j_px && i_px+i_c <= j_px+j_c))
			{
				if((j_py < i_py+i_a && j_py > i_py) || (j_py+j_a > i_py && j_py+j_a < i_py+i_a) || 
					(j_py >= i_py && j_py+j_a <= i_py+i_a) || (i_py >= j_py && i_py+i_a <= j_py+j_a))
					return true;

			}


		}
		return false;
			
	}


	private void processaSemaforo()
	{
		if(loopCounter == sleepTime && semaforo != 3)
			semaforo++;
	}
			

	private int getPosicao()
	{
		int carros = mapa[0];
		int p=0;
		for(int x=0; x<numVeiculos; x++)
		{
			if(carroJogador.getPy() < veiculoInimigo[x].getPy())
				p++;
		}
		return numVeiculos-p+1;	
	}

	private void desenhaLinhas(Graphics g)
	{
		
		g.setColor(255,255,255);
		for(int x=0; x<linhas.length;x++)
		{
			g.fillRect(34+bordaEsquerda,linhas[x],3,20);
			g.fillRect(69+bordaEsquerda,linhas[x],3,20);
		}
	}

	private void andaLinhas()
	{
		int vel = carroJogador.getVelocidade();
		for(int x=0; x<linhas.length;x++)
		{
			if(vel > 5)
				linhas[x]+=vel/5;
			else if(vel != 0)
				linhas[x]++;

			if(linhas[x] > 180 )
				linhas[x]-=300;
		}			
	}

	private void andaPlacas()
	{
		int vel = carroJogador.getVelocidade();

			if(vel > 5)
				placapy+=vel/5;
			else if(vel != 0)
				placapy++;

			if(placapy > 180 )
				placapy-=210;
	}
		
	private void desenhaPlacas(Graphics g)
	{
			g.drawImage(placa, 5, placapy, Graphics.TOP | Graphics.LEFT);
			g.drawImage(placa, 150, placapy, Graphics.TOP | Graphics.LEFT);
	
	}

	private void desenhaInterface(Graphics g)
	{
		g.setColor(0,0,0);
		g.fillRect(0,164,180,20);
		g.setColor(255,255,255);
		g.drawString("Vel: " + carroJogador.getVelocidade() +  " Pos: "+ getPosicao()+"  Ener: "+carroJogador.getEnergia(), 50,165, Graphics.TOP | Graphics.LEFT);

		int bola1 = 0x960000; /* RGB 150,0,0 */
		int bola2 = 0x960000;
		int bola3 = 0x009600; /* RGB 0,150,0 */
		
		if(semaforo  > 0)
			bola1 = 0xFF0000;
		if(semaforo > 1)
			bola2 = 0xFF0000;
		if(semaforo > 2)
			bola3 = 0x00FF00;

		g.setColor(bola1);
		g.fillArc(2,167,8,8,0,360);
		g.setColor(bola2);
		g.fillArc(12,167,8,8,0,360);
		g.setColor(bola3);
		g.fillArc(22,167,8,8,0,360);
		
		
	}
		

	public void paint(Graphics g)
	{
		if(!pausado)
		{
			g.drawImage(back,0,0, Graphics.TOP | Graphics.LEFT);
			desenhaLinhas(g);
			desenhaPlacas(g);
			desenhaVeiculos(g);
			desenhaInterface(g);
		}

		if(getPosicao() == 1)
		{
			pausado = true;

			g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE));

			g.setColor(255,0,0);
			g.drawString("VOCÊ VENCEU!", 40,70, Graphics.TOP | Graphics.LEFT);
			g.drawString("PRESSIONE FIRE (5)", 20,90, Graphics.TOP | Graphics.LEFT);
		}

		else if(carroJogador.getEnergia() == 0)
		{
			pausado = true;

			g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE));

			g.setColor(255,0,0);
			g.drawString("GAME OVER", 40,70, Graphics.TOP | Graphics.LEFT);
			g.drawString("PRESSIONE FIRE (5)", 20,90, Graphics.TOP | Graphics.LEFT);
		}

	}

	public void run()
	{
		try
		{
			while(true)
			{
				Thread.sleep(sleepTime);
				
				if(semaforo == 3)
				{
					processaTeclas();


					if(!pausado)
					{
						andaLinhas();
						andaPlacas();
						andaVeiculos();

					}

				}
				else
					processaSemaforo();

				repaint();

				if(loopCounter<sleepTime)
					loopCounter++;
				else
					loopCounter=0;
			}
		}
		catch(Exception e){}
	}

	private void processaTeclas()
	{
		int keyStates = getKeyStates();


		if((keyStates & FIRE_PRESSED) != 0)
		{
			if(pausado)
			{
				pausado = false;
				iniciaJogo();
			}
		}

		if((keyStates & UP_PRESSED)!=0)
			carroJogador.incVelocidade(1);
		else
		{
			if(carroJogador.getVelocidade() >= 1)
			{
				if(loopCounter % 3 == 0)
					carroJogador.incVelocidade(-1);
			}
		}

		if((keyStates & DOWN_PRESSED)!=0)
		{
			if(carroJogador.getVelocidade() >=5)
				carroJogador.incVelocidade(-1);
		}

		if((keyStates & LEFT_PRESSED)!=0)
		{
			int px_ant = carroJogador.getPx();

			if(px_ant - 3 >= MARGEM_ESQUERDA)
			{
				carroJogador.setPx(px_ant-3);

				if(colisaoVeiculos())
				{
					carroJogador.setPx(px_ant+10);
					carroJogador.setVelocidade(60);
					carroJogador.incEnergia(-1);
				}
			}
		}

		if((keyStates & RIGHT_PRESSED)!=0)
		{
			int px_ant = carroJogador.getPx();
			
			if(px_ant + 3 <= MARGEM_DIREITA)
			{
				carroJogador.setPx(px_ant+3);
			
				if(colisaoVeiculos())
				{
					carroJogador.setPx(px_ant-10);
					carroJogador.setVelocidade(60);
					carroJogador.incEnergia(-1);
				}
			}			
		}
		
	}

	
}

c puderem me ajudar fiko felizz

7 Respostas

Andre_Brito

Que erro que dá?
Você tem o MIDP 2.0 e o CLDC 1.0 instalados e configurados?

Naruto

então amigo… não tem erro… achu que não etou sabendo criar uma classe para chamar eu acho… tpw eu estava tentando rodar pelo netbeans ele tem um emulador…

abelgomes

rapaz, faz o seguinte…cria um projeto novo no netbeans…depois copia essas tuas classes para a pasta de codigo fonte…depois da um clean and build (limpar e construir) e depois roda… acho que vai dar certo :wink:

Naruto

amigo assim que eu chegar em casa vo fazer isso :smiley: obrigado pela atenção… so nã tenho certeza c isso vaida certo… porque quado vccria um projeto mobily no netbeans vc pode criar uma classe visual né…

abelgomes

vc pode criar, mas nao é obrigado, na criação do projeto vc desmarca essa criação automatica da classe, que ai ele vem em branco…:wink:

Naruto

no netbeans o MIDP 2.0 e o CLDC 1.0 ja vem configurados ne?
vlwwww

Naruto

bom dia pessoal

poxa não consegui fazer a aplicação rodar :confused:
tpw ate compilo certim unsando o Java Toolkit mais na hora de rodar ele da erro… vo ver c instalo aqui na firma ae posto o erro

Criado 16 de setembro de 2008
Ultima resposta 17 de set. de 2008
Respostas 7
Participantes 3