import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Juego extends MIDlet {
public void startApp() {
SSCanvas screen=new SSCanvas();
Display.getDisplay(this).setCurrent(screen);
new Thread(screen).start();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
class SSCanvas extends Canvas implements Runnable{
private Sprite snake;
private Sprite player;
public SSCanvas(){
snake= new Sprite(50,50,10,10);
player = new Sprite(118,70,10,10);
}
public void run(){
while(true){
snake.compute(getWidth(),getHeight());
player.computePlayer(getWidth(),getHeight());
repaint();
serviceRepaints();
try {
Thread.sleep(30);
} catch (InterruptedException e) {
}
}
}
public void paint(Graphics g){
g.setColor(0,0,0);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(128,0,255);
g.fillRect(60,70,50,50);
g.setColor(0,255,0);
g.fillRoundRect(8,50,8,8,8,8);
g.setColor(255,0,255);
player.draw(g);
}
public void keyReleased(int keyCode) {
int action=getGameAction(keyCode);
switch (action) {
case LEFT:
player.keyUp(player.LEFT);
break;
case RIGHT:
player.keyUp(player.RIGHT);
break;
case UP:
player.keyUp(player.UP);
break;
case DOWN:
player.keyUp(player.DOWN);
break;
case FIRE:
break;
}
}
public void keyPressed(int keyCode) {
int action=getGameAction(keyCode);
switch (action) {
case LEFT:
player.keyPress(player.LEFT);
break;
case RIGHT:
player.keyPress(player.RIGHT);
break;
case UP:
player.keyPress(player.UP);
break;
case DOWN:
player.keyPress(player.DOWN);
break;
case FIRE:
break;
}
}
}
class Sprite{
protected int x;
protected int y;
protected int width;
protected int height;
protected int incX,incY;
private boolean startX=false;
private boolean startY=false;
protected static final int LEFT = 1;
protected static final int RIGHT = 2;
protected static final int UP = 3;
protected static final int DOWN = 4;
protected static final int FIRE = 5;
public Sprite(int x,int y,int width,int height){
this.x=x;
this.y=y;
this.width=width;
this.height=height;
incX=3;
incY=3;
}
public void compute(int screenW, int screenH){
if(x <= 0)incX=3;
else if(x+width >= screenW)incX=-3;
x+=incX;
}
public void computePlayer(int screenW, int screenH) {
if(x + incX > 0 && (x + incX) < (screenW - width)){
x+=incX;
if(startX==false)incX=0;
}
if(y + incY > 0 && (y + incY) < (screenH - height)){
y+=incY;
if(startY==false)incY=0;
}
}
public void keyUp(int keyCode) {
switch (keyCode) {
case LEFT:
startX=false;
break;
case RIGHT:
startX=false;
break;
case UP:
startY=false;
break;
case DOWN:
startY=false;
break;
}
}
public void keyPress(int keyCode) {
switch (keyCode) {
case LEFT:
incX=-5;
startX=true;
break;
case RIGHT:
incX=5;
startX=true;
break;
case UP:
incY=-5;
startY=true;
break;
case DOWN:
incY=5;
startY=true;
break;
case FIRE:
break;
}
}
public void draw(Graphics g){
if(incX==5 && incY==40){
g.setColor(180,0,0);
g.fillArc(x,y, width, height,0, 360);
}
else{
g.setColor(250,0,0);
g.fillArc(x,y, width, height,0, 360);
}
}
}
Nataly Garzón
Angélica Tellez
No hay comentarios:
Publicar un comentario