Trabalhando com Sprites em Java ME

02 dezembro 2009

Este post é sobre uma palestra do Robson Soares (blog) ministrada no Javaneiros 2009, onde ele mostra o início da construção de um Jogo em Java ME. A MIDlet construída mostra um lutador fazendo movimentos básicos de socos e chutes.

Sprite utilizado:





MIDletPrincipal.java

import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;


public class MIDletPrincipal extends MIDlet {

Display display;
Jogo meujogo;

public MIDletPrincipal() {

}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

}

protected void pauseApp() {


}

protected void startApp() throws MIDletStateChangeException {
display = Display.getDisplay(this);
meujogo = new Jogo();

display.setCurrent(meujogo);
meujogo.inicia();

}

}

Jogo.java
import java.io.IOException;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;


public class Jogo extends GameCanvas implements Runnable {

Sprite spritelutador;
Image lutador;

protected Jogo() {
super(true);

}

public void paint(Graphics arg0) {


try {
// lutador = Image.createImage("/lutador4.PNG");
// lutador4.PNG 900 x 188 pixels
lutador = Image.createImage("/lutador3.png");
// lutador4.PNG 468 x 98 pixels

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// Lutador Maior
// spritelutador = new Sprite(lutador, 150, 188 );
spritelutador = new Sprite(lutador, 78, 98);

spritelutador.setFrame(0);
spritelutador.setPosition(20, 5);
spritelutador.paint(arg0);
}

public void inicia(){
Thread t = new Thread(this);
t.start();
}

public void run() {

Graphics g = getGraphics();
//int contador = 0;

while(true){
spritelutador.nextFrame();

//spritelutador.setFrame(contador++);
//if (contador == 6)
//  contador = 0;

spritelutador.paint(g);

flushGraphics();

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

0 comentários:

Postar um comentário