Class CanvasJuego

java.lang.Object
  extended byjavax.microedition.lcdui.Displayable
      extended byjavax.microedition.lcdui.Canvas
          extended byjavax.microedition.lcdui.game.GameCanvas
              extended byCanvasJuego
All Implemented Interfaces:
javax.microedition.lcdui.CommandListener, java.lang.Runnable

public class CanvasJuego
extends javax.microedition.lcdui.game.GameCanvas
implements java.lang.Runnable, javax.microedition.lcdui.CommandListener

Es la clase principal, hija de GameCanvas y con interfaz Runnable. A parte de todos los atributos y métodos heredados de GameCanvas, esta clase realiza las siguiente funciones:

- Contiene el loop principal del juego.
- Desde esta clase se crean el inventario, el animador, la gestión de frases, el personaje, el puntero, y todos los objetos.
- Lee e interpreta los ficheros .dat con la información de los niveles y sus mapas.
- Crea el escenario.
- Crea la lista de objetos a partir de esa información.
- Comprueba si hay algun RecordStore con el nombre del mapa a cargar y el numero de partida; si lo hay, modifica los objetos indicados.
- Busca otro RecordStore con información del inventario, y carga esos objetos y los añade al inventario en la posición que ocupaban.
- Cambia el modo de juego.
- Función de scroll del escenario.
- Control de colisiones.
- Movimiento automático hasta llegar a objeto de destino.
- Representación gráfica del inventario.


Nested Class Summary
 
Nested classes inherited from class javax.microedition.lcdui.Displayable
 
Field Summary
private  boolean activo
          Establece si el Thread está activo o no.
private  int alto
          Medida de la pantalla
private  int ancho
          Medida de la pantalla
private  Animador animadorDeObjetos
          Animador de Objs del escenario
private  Animador animadorPersonaje
          Animador para el protagonista
private  int autoHorizontal
          Sentido del movimiento horizontal en movimientoAutomatico().
private  int autoVertical
          Sentido del movimiento vertical en movimientoAutomatico().
private  javax.microedition.lcdui.Command borrar
           
private  javax.microedition.lcdui.game.LayerManager capaEscenario
          Contiene la capa del escenario y el protagonista
private  javax.microedition.lcdui.game.LayerManager capaFondo
          Contiene la capa del background (fondo).
private  javax.microedition.lcdui.game.LayerManager capaObjetos
          Contiene los Sprites de los objetos
private  javax.microedition.lcdui.Command coger
          Command modo 0
private  int coordX
          Coordenada del escenario (para scroll)
private  int coordY
          Coordenada del escenario (para scroll)
private  int cuadradoX
          Posición del cuadrado selector del inventario
private  int cuadradoY
          Posición del cuadrado selector del inventario
private  java.lang.String descMapa
           
private  Frase dialogo
          Instancia de la clase Frase, encargada de gestionar frases y sus prioridades y lanzar frases de error
private  javax.microedition.lcdui.game.TiledLayer escenario
          TiledLayer que contiene el escenario
private  boolean existeUltimo
           
 LeeFichero fichero
          Lector de ficheros
private  java.lang.String frase
          Texto que se muestra en pantalla
private  javax.microedition.lcdui.Font fuente
          Fuente del texto de la pantalla
private  javax.microedition.lcdui.Graphics gfx
          Para iniciar Display
private  javax.microedition.lcdui.Command guardar
          Command modo 0
private  javax.microedition.lcdui.Image imagenObjeto
          Imagen usada por el metodo creaObjeto().
private  javax.microedition.lcdui.Image img
          Imagen global de uso temporal
private  javax.microedition.lcdui.Command inven
          Command modo 0
private  Inventario inventario
          Instancia de la clase Inventario
private  boolean inventarioCargado
          true si ya se ha cargado el inventario desde la RecordStore, false si no.
private  int inventarioObjActual
          Número de objeto en inventario, o -1 si no hay actual.
private  Obj[] listaInventario
          Lista de Objs en inventario.
private  javax.microedition.lcdui.game.Layer[] listaLayer
          Array que contiene los Layers SIN USO
private  java.lang.String[][] listaNiveles
          1a dimension = nº niveles. 2a dimension = 2 campos (nombre nivel y nº de mapas en nivel)
listaNiveles[nivel][0]; //nombre del nivel
listaNiveles[nivel][1]; //mapas en nivel
 Obj[] listaObjetos
          Array que contiene los objetos del mapa
private  int mapaActual
          DUNNO
 boolean mapaCambiado
          Es true cuando se ha usado o cogido algun objeto del mapa y por lo tanto hay que guardar los datos en la RecordStore.
private  int mapaSiguiente
          Mapa al ke lleva el objeto clave con el que ha colisionado el prota
private  GAEM midlete
          MIDlet del juego
private  int milisegundos
          Tiempo de hivernación del Thread.
private  javax.microedition.lcdui.Command mirar
          Command modo 0
private  javax.microedition.lcdui.Command mirarInv
          Command modo 1
private  int modoMenus
          Modo de juego
 int mPosXProta
          Posición del personaje en el mapa
 int mPosYProta
          Posición del personaje en el mapa
private  int nivelActual
          NO USE OR DUNNO
 int numeroPartida
          Número de partida.
private  Obj objetoActual
           
private  Obj objetoInv
          Obj seleccionado del inventario
private  Obj objetoInvTemp
          objeto inventario temporal, para seleccionar el segundo
private  javax.microedition.lcdui.Command ok
          Command modo 2 y 3
private  int oldCoordX
          Coordenada anterior del escenario (para colisión)
private  int oldCoordY
          Coordenada anterior del escenario (para colisión)
private  int oldX
          Posición anterior del personaje (para colisión)
private  int oldY
          Posición anterior del personaje (para colisión)
private  javax.microedition.lcdui.Image pje
          Imagen del personaje.
private  boolean primeraVez
          Comprobador de primer paso por un loop
private  Personaje prota
          Instancia de la clase Personaje para el protagonista
private  javax.microedition.lcdui.game.Sprite puntero
           
private  int punteroCol
          Posición del puntero del modo 3
private  javax.microedition.lcdui.Image punteroImg
          Imagen del puntero
private  int punteroRow
          Posición del puntero del modo 3
private  javax.microedition.rms.RecordStore recordRetorno
          Record temporal de retorno.
private  Obj resultadoColision
          Resultante de la comprobacion de colisiones en el Loop principal
private  javax.microedition.lcdui.Command salir
          Command modo 0
private  SeparaDatosMapa separaDatosMapa
           
private  SeparaDatosObjetosNW separaDatosObjetosNW
           
private  boolean siguienteNivel
          Es true cuando hay que cambiar de nivel.
private  boolean siguientePantalla
          Es true cuando hay que cambiar de mapa.
private  int teclilla
          Guarda el valor si se pulsa izquierda o derecha en el inventario, si no vale 0.
private  javax.microedition.lcdui.Image terreno
          Imagen con las tiles del terreno.
private  Obj ultimoObjeto
           
private  javax.microedition.lcdui.Command usarExt
          Command modo 1
private  javax.microedition.lcdui.Command usarInt
          Command modo 1
private  boolean usarInvSelec
          Se ha seleccionado el 1er Obj en el modo 2 (usar con inventario)?
private  int uX
          Posicion personaje, rescatada desde RecordStore ultimo.
private  int uY
          Posicion personaje, rescatada desde RecordStore ultimo.
 Obj vacio
          Objeto vacío (dummy)
private  boolean[] verDescMapa
           
private  javax.microedition.lcdui.Command volver
          Command modo 1
private  boolean volverDeInventario
          Es true si pasa del modo 2 o el 3 al 1. si no es false.
private  int x
          Posición del personaje
private  int y
          Posición del personaje
 
Fields inherited from class javax.microedition.lcdui.game.GameCanvas
DOWN_PRESSED, FIRE_PRESSED, GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED, GAME_D_PRESSED, LEFT_PRESSED, RIGHT_PRESSED, UP_PRESSED
 
Fields inherited from class javax.microedition.lcdui.Canvas
DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP
 
Fields inherited from class javax.microedition.lcdui.Displayable
 
Constructor Summary
CanvasJuego(GAEM midlet)
          El constructor inicializa todas las variables y objetos, asi como los Commands.
 
Method Summary
private  void borra()
          Elimina todas las RecordStores.
private  void cambiaMapa(int mapa)
          Cambia al mapa especificado.
private  void cambiaMapa(int mapa, int colDest, int rowDest)
           
private  void carga(boolean b)
          Carga los Objs del mapa o del inventario.
private  javax.microedition.rms.RecordStore cierraBorraCreaRS(javax.microedition.rms.RecordStore rs, java.lang.String nom)
          Cierra la RecordStore, la borra y la vuelve a crear.
private  Obj colisiones()
          Comprueba las colisiones del pje y el escenario, y tambien con los demás objetos y devuelve el Objeto colisionador si lo hubiera.
 void commandAction(javax.microedition.lcdui.Command c, javax.microedition.lcdui.Displayable d)
          Captura los eventos de Commands del menú.
private  void compruebaPosicion()
          Detiene el Scroll si el jugador llega a los extremos del mapa.
 int compruebaUltimo()
           
 javax.microedition.lcdui.game.TiledLayer creaEscenarioNW(java.lang.String desc, int col, int row, java.lang.String tiles, int anchoTile, int altoTile, int[] mapa)
          Crea la TiledLayer del escenario.
 Obj creaObjeto(int pos, java.lang.String imag, int w, int h, java.lang.String abc, int row, int col, int numest, int mapaNum, int usTemp, int usTempEnEstado, java.lang.String fraseError)
          Crea Objeto animado
 Obj creaObjeto(int pos, java.lang.String imag, java.lang.String abc, int row, int col, int numest, int mapaNum, int usTemp, int usTempEnEstado, java.lang.String fraseError)
          Crea Objeto estático
private  void creaObjetos(java.lang.String ficheroDeObjetos, int mapa)
          Añade últimos retoques a la creación de la lista de objetos.
private  Personaje creaPersonaje()
          Crea al pje.
private  javax.microedition.lcdui.game.Sprite creaPuntero()
          Crea el puntero del modo 3.
private  void creaVacios()
          Crea el Obj Dummy vacío
 void cuadrado(javax.microedition.lcdui.Graphics g, int x, int y, int ancho, int alto)
           
private  void dibuja(javax.microedition.lcdui.Graphics g)
          Dibuja a pantalla desde el buffer offscreen.
 Inventario getInventario()
           
 java.lang.String[][] getListaNiveles()
           
 Obj[] getListaObjetos()
           
 int getMapaActual()
           
 int getNivelActual()
           
 int getNumeroPartida()
           
 SeparaDatosObjetosNW getSeparadorObjetos()
           
private  void guarda(int estado, int invent, int numObj, int numMapa)
          Deberia comprobar si hay records grabados (getNumRecords() !
private  void hayObjetos(int a, int b)
          Busca un Objeto en una cuadricula de 3x3 cuadrados (3*16 x 3*16).
protected  void keyPressed(int keyCode)
          Método regular de eventos de teclas de Canvas, solo usado en modo inventario, si no pone la variable teclilla a cero.
private  void movimientoAnterior()
          Vuelve al movimiento previo a la posición actual (tanto pje como escenario), se llama desde colisiones().
private  boolean movimientoAutomatico(Obj obj)
          Mueve al personaje hacia el objeto pasado como parámetro y devuelve true cuando llegue, de lo contrario devuelve false.
private  void muestraInventario()
          Muestra el inventario.
 void mueveCuadradoAtras()
          Mueve cuadrado selector del inventario una posición hacia atrás si no selecciona el primer objeto.
private  void ocultaInventario()
          Oculta inventario previamente mostrado.
 void run()
          LOOP PRINCIPAL
Desde aquí se llama a la mayoría de métodos y se controla todo el flujo del juego.
private  void scroll(char c, boolean b)
          Realiza el scroll del escenario.
private  void separaDatosNiveles(java.lang.String str)
          Separa datos de los niveles.
private  void setModoMenus(int i)
          Cambia el modo y los Commands al modo de juego actual.
 void start()
           
 void stop()
           
private  void teclas()
          Eventos de teclas de movimiento para modos jugable y de inventario.
private  void teclasPuntero()
          Teclas de movimiento del puntero.
 
Methods inherited from class javax.microedition.lcdui.game.GameCanvas
flushGraphics, flushGraphics, getGraphics, getKeyStates, paint
 
Methods inherited from class javax.microedition.lcdui.Canvas
getGameAction, getKeyCode, getKeyName, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, hideNotify, isDoubleBuffered, keyReleased, keyRepeated, pointerDragged, pointerPressed, pointerReleased, repaint, repaint, serviceRepaints, setFullScreenMode, showNotify, sizeChanged
 
Methods inherited from class javax.microedition.lcdui.Displayable
addCommand, getHeight, getTicker, getTitle, getWidth, isShown, removeCommand, setCommandListener, setTicker, setTitle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pje

private javax.microedition.lcdui.Image pje
Imagen del personaje.


terreno

private javax.microedition.lcdui.Image terreno
Imagen con las tiles del terreno.


activo

private boolean activo
Establece si el Thread está activo o no.


milisegundos

private int milisegundos
Tiempo de hivernación del Thread.


x

private int x
Posición del personaje


y

private int y
Posición del personaje


oldX

private int oldX
Posición anterior del personaje (para colisión)


oldY

private int oldY
Posición anterior del personaje (para colisión)


coordX

private int coordX
Coordenada del escenario (para scroll)


coordY

private int coordY
Coordenada del escenario (para scroll)


oldCoordX

private int oldCoordX
Coordenada anterior del escenario (para colisión)


oldCoordY

private int oldCoordY
Coordenada anterior del escenario (para colisión)


ancho

private int ancho
Medida de la pantalla


alto

private int alto
Medida de la pantalla


mPosXProta

public int mPosXProta
Posición del personaje en el mapa


mPosYProta

public int mPosYProta
Posición del personaje en el mapa


gfx

private javax.microedition.lcdui.Graphics gfx
Para iniciar Display


escenario

private javax.microedition.lcdui.game.TiledLayer escenario
TiledLayer que contiene el escenario


vacio

public Obj vacio
Objeto vacío (dummy)


prota

private Personaje prota
Instancia de la clase Personaje para el protagonista


capaEscenario

private javax.microedition.lcdui.game.LayerManager capaEscenario
Contiene la capa del escenario y el protagonista


capaObjetos

private javax.microedition.lcdui.game.LayerManager capaObjetos
Contiene los Sprites de los objetos


capaFondo

private javax.microedition.lcdui.game.LayerManager capaFondo
Contiene la capa del background (fondo). Se trata de la parte no-colisionable del escenario.


ultimoObjeto

private Obj ultimoObjeto

objetoActual

private Obj objetoActual

listaObjetos

public Obj[] listaObjetos
Array que contiene los objetos del mapa


animadorPersonaje

private Animador animadorPersonaje
Animador para el protagonista


salir

private javax.microedition.lcdui.Command salir
Command modo 0


guardar

private javax.microedition.lcdui.Command guardar
Command modo 0


mirar

private javax.microedition.lcdui.Command mirar
Command modo 0


coger

private javax.microedition.lcdui.Command coger
Command modo 0


inven

private javax.microedition.lcdui.Command inven
Command modo 0


volver

private javax.microedition.lcdui.Command volver
Command modo 1


mirarInv

private javax.microedition.lcdui.Command mirarInv
Command modo 1


usarExt

private javax.microedition.lcdui.Command usarExt
Command modo 1


usarInt

private javax.microedition.lcdui.Command usarInt
Command modo 1


ok

private javax.microedition.lcdui.Command ok
Command modo 2 y 3


borrar

private javax.microedition.lcdui.Command borrar

frase

private java.lang.String frase
Texto que se muestra en pantalla


fuente

private javax.microedition.lcdui.Font fuente
Fuente del texto de la pantalla


dialogo

private Frase dialogo
Instancia de la clase Frase, encargada de gestionar frases y sus prioridades y lanzar frases de error


midlete

private GAEM midlete
MIDlet del juego


inventario

private Inventario inventario
Instancia de la clase Inventario


modoMenus

private int modoMenus
Modo de juego


objetoInv

private Obj objetoInv
Obj seleccionado del inventario


objetoInvTemp

private Obj objetoInvTemp
objeto inventario temporal, para seleccionar el segundo


cuadradoX

private int cuadradoX
Posición del cuadrado selector del inventario


cuadradoY

private int cuadradoY
Posición del cuadrado selector del inventario


listaLayer

private javax.microedition.lcdui.game.Layer[] listaLayer
Array que contiene los Layers SIN USO


usarInvSelec

private boolean usarInvSelec
Se ha seleccionado el 1er Obj en el modo 2 (usar con inventario)?


puntero

private javax.microedition.lcdui.game.Sprite puntero

punteroCol

private int punteroCol
Posición del puntero del modo 3


punteroRow

private int punteroRow
Posición del puntero del modo 3


punteroImg

private javax.microedition.lcdui.Image punteroImg
Imagen del puntero


img

private javax.microedition.lcdui.Image img
Imagen global de uso temporal


imagenObjeto

private javax.microedition.lcdui.Image imagenObjeto
Imagen usada por el metodo creaObjeto().


volverDeInventario

private boolean volverDeInventario
Es true si pasa del modo 2 o el 3 al 1. si no es false.


teclilla

private int teclilla
Guarda el valor si se pulsa izquierda o derecha en el inventario, si no vale 0.


autoHorizontal

private int autoHorizontal
Sentido del movimiento horizontal en movimientoAutomatico(). Por defecto vale 2 (no hay ke moverse).


autoVertical

private int autoVertical
Sentido del movimiento vertical en movimientoAutomatico(). Por defecto vale 2 (no hay ke moverse).


primeraVez

private boolean primeraVez
Comprobador de primer paso por un loop


animadorDeObjetos

private Animador animadorDeObjetos
Animador de Objs del escenario


siguientePantalla

private boolean siguientePantalla
Es true cuando hay que cambiar de mapa. Si no es false.


siguienteNivel

private boolean siguienteNivel
Es true cuando hay que cambiar de nivel. Si no es false.


listaNiveles

private java.lang.String[][] listaNiveles
1a dimension = nº niveles. 2a dimension = 2 campos (nombre nivel y nº de mapas en nivel)

listaNiveles[nivel][0]; //nombre del nivel
listaNiveles[nivel][1]; //mapas en nivel


nivelActual

private int nivelActual
NO USE OR DUNNO


mapaActual

private int mapaActual
DUNNO


mapaSiguiente

private int mapaSiguiente
Mapa al ke lleva el objeto clave con el que ha colisionado el prota


inventarioObjActual

private int inventarioObjActual
Número de objeto en inventario, o -1 si no hay actual.


numeroPartida

public int numeroPartida
Número de partida. Sirve para diferenciar a un jugador de otro y así cargar o guardar las partidas (temporal o permanentemente).


mapaCambiado

public boolean mapaCambiado
Es true cuando se ha usado o cogido algun objeto del mapa y por lo tanto hay que guardar los datos en la RecordStore.


listaInventario

private Obj[] listaInventario
Lista de Objs en inventario.


separaDatosMapa

private SeparaDatosMapa separaDatosMapa

separaDatosObjetosNW

private SeparaDatosObjetosNW separaDatosObjetosNW

inventarioCargado

private boolean inventarioCargado
true si ya se ha cargado el inventario desde la RecordStore, false si no.


fichero

public LeeFichero fichero
Lector de ficheros


recordRetorno

private javax.microedition.rms.RecordStore recordRetorno
Record temporal de retorno. Usada en cierraBorraCreaRS(RecordStore, String)


resultadoColision

private Obj resultadoColision
Resultante de la comprobacion de colisiones en el Loop principal


uX

private int uX
Posicion personaje, rescatada desde RecordStore ultimo.


uY

private int uY
Posicion personaje, rescatada desde RecordStore ultimo.


existeUltimo

private boolean existeUltimo

verDescMapa

private boolean[] verDescMapa

descMapa

private java.lang.String descMapa
Constructor Detail

CanvasJuego

public CanvasJuego(GAEM midlet)
El constructor inicializa todas las variables y objetos, asi como los Commands.

Parameters:
midlet - Objeto de la clase GAEM (midlet del juego). Sirve para hacer referencia a GAEM.exit()
Method Detail

compruebaUltimo

public int compruebaUltimo()

getInventario

public Inventario getInventario()

getListaObjetos

public Obj[] getListaObjetos()

getNivelActual

public int getNivelActual()

getNumeroPartida

public int getNumeroPartida()

getListaNiveles

public java.lang.String[][] getListaNiveles()

getMapaActual

public int getMapaActual()

getSeparadorObjetos

public SeparaDatosObjetosNW getSeparadorObjetos()

cambiaMapa

private void cambiaMapa(int mapa,
                        int colDest,
                        int rowDest)

cambiaMapa

private void cambiaMapa(int mapa)
Cambia al mapa especificado. Comprueba si ha cambiado el mapa actual y de ser así guarda la info de los Objs.
Después carga el mapa y los objetos. Comprueba si hay alguna RecordStore con el nombre del mapa y el número de partida,
de ser así modifica los objetos que haya que modificar. Hace lo mismo con la RecordStore del inventario.

Parameters:
mapa - Número de mapa al que se cambia.

separaDatosNiveles

private void separaDatosNiveles(java.lang.String str)
Separa datos de los niveles. El fichero niveles.dat tiene la estructura:
nº niveles, nombre nivel 0, nº mapas en nivel 0, nombre nivel 1, nº mapas en nivel 1...

Este método separara los datos de los niveles, que son: - número de niveles
- nombre del nivel
- número de mapas en el nivel (NombreMapa#.dat y NombreObj#.dat)

Y los guarda en: listaNiveles[numeroNivel] [numeroCampo] (array bidimensional).

Parameters:
str - Contenido del fichero niveles.dat

movimientoAutomatico

private boolean movimientoAutomatico(Obj obj)
Mueve al personaje hacia el objeto pasado como parámetro y devuelve true cuando llegue, de lo contrario devuelve false.
Sirve para acercar al protagonista al objeto que se ha seleccionado para usar. Basicamente en modo usar inventario con mapa:
El personaje ha de acercarse primero al objeto y despues usarlo.

Este método se conoce como modo 4.

Parameters:
obj - Obj hasta el que hay que mover el personaje.
Returns:
true si ha llegado al Obj, false de lo contrario.

creaObjetos

private void creaObjetos(java.lang.String ficheroDeObjetos,
                         int mapa)
Añade últimos retoques a la creación de la lista de objetos.

Parameters:
ficheroDeObjetos - Ruta al fichero de objetos.
mapa - Número de mapa que se establecerá en los Obj con cambiaMapa(int)

creaObjeto

public Obj creaObjeto(int pos,
                      java.lang.String imag,
                      java.lang.String abc,
                      int row,
                      int col,
                      int numest,
                      int mapaNum,
                      int usTemp,
                      int usTempEnEstado,
                      java.lang.String fraseError)
Crea Objeto estático

Parameters:
pos - Posición en lista.
imag - Imagen estado 0.
abc - Descripción estado 0.
row - fila.
col - columna.
numest - Número de estados totales.
mapaNum - Número de mapa del Obj usable.
usTemp - Posición en lista del Obj usable.
usTempEnEstado - Estado del Obj usable.
fraseError - Frase de error al usar.
Returns:
Objeto creado :-)

creaObjeto

public Obj creaObjeto(int pos,
                      java.lang.String imag,
                      int w,
                      int h,
                      java.lang.String abc,
                      int row,
                      int col,
                      int numest,
                      int mapaNum,
                      int usTemp,
                      int usTempEnEstado,
                      java.lang.String fraseError)
Crea Objeto animado

Parameters:
pos - Posición en lista.
imag - Imagen estado 0.
w - Anchura de cada frame.
h - Altura de cada frame.
abc - Descripción estado 0.
row - fila.
col - columna.
numest - Número de estados totales.
mapaNum - Número de mapa del Obj usable.
usTemp - Posición en lista del Obj usable.
usTempEnEstado - Estado del Obj usable.
fraseError - Frase de error al usar.
Returns:
Objeto creado :-)

creaVacios

private void creaVacios()
Crea el Obj Dummy vacío


stop

public void stop()

start

public void start()

run

public void run()
LOOP PRINCIPAL
Desde aquí se llama a la mayoría de métodos y se controla todo el flujo del juego. Luego hace dormir al Thread y vuelve a empezar.

Specified by:
run in interface java.lang.Runnable

dibuja

private void dibuja(javax.microedition.lcdui.Graphics g)
Dibuja a pantalla desde el buffer offscreen.


cuadrado

public void cuadrado(javax.microedition.lcdui.Graphics g,
                     int x,
                     int y,
                     int ancho,
                     int alto)

hayObjetos

private void hayObjetos(int a,
                        int b)
Busca un Objeto en una cuadricula de 3x3 cuadrados (3*16 x 3*16). Si encuentra un Obj, ultimoObjeto lo referenciará, si no referenciará al Obj vacío.

Parameters:
a - Coordenada X del centro del cuadrado.
b - Coordenada Y del centro del cuadrado.

commandAction

public void commandAction(javax.microedition.lcdui.Command c,
                          javax.microedition.lcdui.Displayable d)
Captura los eventos de Commands del menú.

Specified by:
commandAction in interface javax.microedition.lcdui.CommandListener
Parameters:
c - El Command.
d - El Displayable.

setModoMenus

private void setModoMenus(int i)
Cambia el modo y los Commands al modo de juego actual.

Parameters:
i - Modo al que se cambia.

compruebaPosicion

private void compruebaPosicion()
Detiene el Scroll si el jugador llega a los extremos del mapa.


muestraInventario

private void muestraInventario()
Muestra el inventario.


ocultaInventario

private void ocultaInventario()
Oculta inventario previamente mostrado.


creaPersonaje

private Personaje creaPersonaje()
Crea al pje.


creaPuntero

private javax.microedition.lcdui.game.Sprite creaPuntero()
Crea el puntero del modo 3.


colisiones

private Obj colisiones()
Comprueba las colisiones del pje y el escenario, y tambien con los demás objetos y devuelve el Objeto colisionador si lo hubiera.
Si hay colisión llama al método movimientoAnterior().

Returns:
Obj con el que ha colisionado el pje, si no Obj vacío.

movimientoAnterior

private void movimientoAnterior()
Vuelve al movimiento previo a la posición actual (tanto pje como escenario), se llama desde colisiones().


scroll

private void scroll(char c,
                    boolean b)
Realiza el scroll del escenario.

Parameters:
c - Dirección. Puede valer 'x' o 'y'.
b - Sentido. true es positivo y false es negativo.

teclas

private void teclas()
Eventos de teclas de movimiento para modos jugable y de inventario.


keyPressed

protected void keyPressed(int keyCode)
Método regular de eventos de teclas de Canvas, solo usado en modo inventario, si no pone la variable teclilla a cero.


mueveCuadradoAtras

public void mueveCuadradoAtras()
Mueve cuadrado selector del inventario una posición hacia atrás si no selecciona el primer objeto.


teclasPuntero

private void teclasPuntero()
Teclas de movimiento del puntero.


creaEscenarioNW

public javax.microedition.lcdui.game.TiledLayer creaEscenarioNW(java.lang.String desc,
                                                                int col,
                                                                int row,
                                                                java.lang.String tiles,
                                                                int anchoTile,
                                                                int altoTile,
                                                                int[] mapa)
Crea la TiledLayer del escenario.

Parameters:
col - Columnas.
row - Filas.
tiles - Ruta a la Imagen conteniendo las Tiles.
anchoTile - Ancho de cada Tile.
altoTile - Alto de cada Tile.
mapa - Array unidimensional que contiene el mapa.
Returns:
El escenario en forma de TiledLayer.

guarda

private void guarda(int estado,
                    int invent,
                    int numObj,
                    int numMapa)
Deberia comprobar si hay records grabados (getNumRecords() != 0)y sobreescribirlos.
Si numMapa vale -1, es el mapa actual. Si no, numMapa es el numero de mapa (o sea, el obj esta en el inventario)

Parameters:
estado - Estado del Obj a guardar.
invent - Su posición en inventario.
numObj - Su número de Obj.
numMapa - Número de mapa al que pertenece.

cierraBorraCreaRS

private javax.microedition.rms.RecordStore cierraBorraCreaRS(javax.microedition.rms.RecordStore rs,
                                                             java.lang.String nom)
Cierra la RecordStore, la borra y la vuelve a crear.
Se hace así porqué aunque se borren los Records los nuevos los crea en la posición siguiente al último borrado...

Parameters:
rs - La RecordStore a cerrar.
nom - El nombre de la RecordStore a borrar y crear.
Returns:
La RecordStore creada.

borra

private void borra()
Elimina todas las RecordStores.


carga

private void carga(boolean b)
Carga los Objs del mapa o del inventario.

Parameters:
b - true si hay que cargar los objetos del mapa, false si hay que cargar los del inventario.