Вы находитесь на странице: 1из 4

APLICACIONES MOVILES

UTILIZANDO SPRITE
PELOTA REBOTANDO HORIZONTALMENTE

INTRODUCCION
Necesitaremos 3 clases:
Demo1
:
Esta es nuestra clase principal, que permita llamar
a nuestro canvas.
SSCanvas :
Esta clase permitir insertar nuestro Sprite y dibujar la
pantalla.
Sprite
:
Esta clase permitir crear a la pelota, la orientacin,
velocidad, color,
forma, limites y velocidad.

Demo1.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Demo1 extends MIDlet {
private boolean midletPaused = false;
public Demo1() {
}
public Display getDisplay() {
return Display.getDisplay(this);

www.rolandostudios.com

Pgina 1

APLICACIONES MOVILES
}
public void exitMIDlet() {
switchDisplayable(null, null);
destroyApp(true);
notifyDestroyed();
}
public void startApp() {
//creamos un objeto SSCanvas (nuestra pantalla de juego)
SSCanvas screen=new SSCanvas();
//indicamos al dispositivo que screen (instancia de SSCanvas) ser la
//nueva pantalla activa
Display.getDisplay(this).setCurrent(screen);
new Thread(screen).start(); //arrancamos el bucle (nuevo hilo de
ejecucin)
}
public void pauseApp() {
midletPaused = true;
}
public void destroyApp(boolean unconditional) {
}
}

SSCanvas.java
import javax.microedition.lcdui.*;
class SSCanvas extends Canvas implements Runnable{
private Sprite ball;
//metodo constructor
public SSCanvas(){
//instanciamos (creamos) el objeto ball a partir de la clase Sprite
ball = new Sprite(getWidth()/2,getHeight()/2,20,20);
}
public void run(){

www.rolandostudios.com

Pgina 2

APLICACIONES MOVILES
while(true){
//actualizamos la posicion de la bola
ball.compute(getWidth(),getHeight());
//forzamos el repintado de la pantalla
repaint();
serviceRepaints();
try {
//velocidad de rebote del sprite
Thread.sleep(10);
} catch (InterruptedException e) {
}
}
}
//metodo de la clase canvas para pintar en pantalla
public void paint(Graphics g){
//seleccionamos el color blanco para pintar el fondo
g.setColor(255,255,255);
//pintamos el fondo de pantalla con un rectangulo con el tamao
de
//la pantalla getWidth() y getHeight() es un mtodo de la clase
canvas
//que nos devuelve el ancho y alto de la pantalla
g.fillRect(0,0,getWidth(),getHeight());
//pintamos la bola en pantalla
ball.draw(g);
}
}

Sprite.java
import javax.microedition.lcdui.*;
class Sprite {
//atributos privados
protected int x;
protected int y;
protected int width;
protected int height;
protected int incX;
//metodo constructor
public Sprite(int x,int y,int width,int height){

www.rolandostudios.com

Pgina 3

APLICACIONES MOVILES
this.x=x;
this.y=y;
this.width=width;
this.height=height;
incX=3;
}
//metodo que actualiza la posicin del sprite
public void compute(int screenW, int screenH){
//ubica la posicion del sprite en el screen
y=20;
//limita el sprite en el screen
//Permite el rebote del sprite en forma horizontal
if(x <=0)incX=3;
else if(x+width >= screenW)incX=-3;
x+=incX;
}
//metodo que muestra en pantalla al sprite
public void draw(Graphics g){
g.setColor(250,0,0);
g.fillArc(x,y, width, height,0, 360);
}
}

www.rolandostudios.com

Pgina 4

Вам также может понравиться