Foros del Web » Programación para mayores de 30 ;) » Programación móvil »

Me ayudan por favor con duda de J2ME?

Estas en el tema de Me ayudan por favor con duda de J2ME? en el foro de Programación móvil en Foros del Web. Tengo el siguiente codigo que mueve un triangulo, el problema es que repaint() no borra lo anterior y se encima la imagen del triangulo cuando ...
  #1 (permalink)  
Antiguo 29/10/2010, 23:58
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Sonrisa Me ayudan por favor con duda de J2ME?

Tengo el siguiente codigo que mueve un triangulo, el problema es que repaint() no borra lo anterior y se encima la imagen del triangulo cuando se mueve, y mi duda es como puedo corregir esto?????:

en mi clase de java:

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


public class CanvasMT extends Canvas{
protected int background = 0xc0c0c0;

int gw = getWidth();
int gh = getHeight();
int x1 = gw/2 - 40;
int y1 = gh/2;
int x2 = gw/2;
int y2 = gh/2 - 40;
int x3 = gw/2 + 40;
int y3 = gh/2;
public CanvasMT(){
this.setFullScreenMode(true);
}

protected void paint(Graphics g) {

g.setColor(209,95,238);
g.drawString("Mueve el triangulo", getWidth () / 2, 5, Graphics.HCENTER | Graphics.TOP);
g.fillTriangle(x1, y1, x2, y2 , x3 , y3);

}

protected void keyPressed(int keyCode){
int gameAction = getGameAction(keyCode);
switch(gameAction)
{
case UP:
if(y1>2&&y2>2&&y3>2)
{
repaint();
x1=gw/2 - 40;
--y1;
x2 = gw/2;
--y2;
x3 = gw/2 + 40;
--y3;
repaint();
}
break;
case DOWN:
if(y1<getHeight()&&y2<getHeight()&&y3<getHeight())
{
repaint();
++y1;
++y2;
++y3;
repaint();
}
break;
case LEFT:
if(x1>0&&x2>0&&x3>0)
{
repaint();
--x1;
--x2;
--x3;
repaint();
}
break;
case RIGHT:
if(x1<getWidth()&&x2<getWidth()&&x3<getWidth())
{
repaint();
++x1;
++x2;
++x3;
repaint();
}
break;
case FIRE:
//mMessage = "FIRE";
break;
case GAME_A:
//mMessage = "GAME_A";
break;
case GAME_B:
//mMessage = "GAME_B";
break;
case GAME_C:
//mMessage = "GAME_C";
break;
case GAME_D:
//mMessage = "GAME_D";
break;
default:
//mMessage = "NO_EXISTE";
break;
}

}

}


Y EN MI MIDDLET TENGO LO SIGUIENTE (solo tengo el objeto para acceder a la clase d arriba):

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


/**
* @author Administrator
*/
public class MidletMT extends MIDlet {
public void startApp() {
CanvasMT obj = new CanvasMT();
Display.getDisplay(this).setCurrent(obj);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
}
  #2 (permalink)  
Antiguo 02/11/2010, 20:36
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Me ayudan por favor con duda de J2ME?

Hola.

en tu metodo pain colorea todo de blanco (o el color que sea tu fonfo) antes de poner cualquier cosa
Código java:
Ver original
  1. protected void paint(Graphics g) {
  2.     g.setColor(255,255,255);
  3.     g.fillRect(0,0,this.getWidth,this.getHeight);
  4.  
  5.     g.setColor(209,95,238);
  6.     g.drawString("Mueve el triangulo", getWidth () / 2, 5, Graphics.HCENTER | Graphics.TOP);
  7.     g.fillTriangle(x1, y1, x2, y2 , x3 , y3);
  8.  
  9. }

Suerte.

Etiquetas: favor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.