viernes, 28 de diciembre de 2007

Movimiento dentro el mapa

Finalmente hemos conseguido crear un cursor para irnos moviendo a través del mapa.
Los movimientos se realizan con el touchpad en los 4 sentidos (izquierda, derecha, arriba, abajo) en el que cada movimiento corresponde a 5 pixeles.
Sabiendo que al iniciar el programa el cursor se encuentra en la coordenada (0,0) podremos ir haciendo los cálculos pertinentes para saber en cada momento en dónde estamos.
El problema que nos encontraríamos ahora es como reconocer que el usuario quiere acceder en una casilla en concreto, ya que sabemos en la que se encuentra a través de las coordenadas, pero para que reconozca que hay debajo e inicie una acción pertinente es lo que estamos investigando ahora.

A continuación se puede ver el código que tenemos para movernos por el mapa:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
boolean procesada= true;

switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:
posY-=MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
posY+=MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
posX-=MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
posX+=MOVIMIENTO;
break;
default:
procesada=false;
break;
}

//correcció en cas de que sortim de pantalla
if(posY<0) posy="0;" posx="0;">altoPantalla)
posY=altoPantalla-altoPosicion;
if(posX+anchoPosicion>anchoPantalla)
posX=anchoPantalla-anchoPosicion;

return procesada;

}
Se debería encontrar una solución similar para que reconociera con un click la aldea a la que se quieren ver los detalles.

No hay comentarios: