|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.microedition.lcdui.Displayable javax.microedition.lcdui.Canvas javax.microedition.lcdui.game.GameCanvas CanvasJuego
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 |
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 |
private javax.microedition.lcdui.Image pje
private javax.microedition.lcdui.Image terreno
private boolean activo
private int milisegundos
private int x
private int y
private int oldX
private int oldY
private int coordX
private int coordY
private int oldCoordX
private int oldCoordY
private int ancho
private int alto
public int mPosXProta
public int mPosYProta
private javax.microedition.lcdui.Graphics gfx
private javax.microedition.lcdui.game.TiledLayer escenario
public Obj vacio
private Personaje prota
private javax.microedition.lcdui.game.LayerManager capaEscenario
private javax.microedition.lcdui.game.LayerManager capaObjetos
private javax.microedition.lcdui.game.LayerManager capaFondo
private Obj ultimoObjeto
private Obj objetoActual
public Obj[] listaObjetos
private Animador animadorPersonaje
private javax.microedition.lcdui.Command salir
private javax.microedition.lcdui.Command guardar
private javax.microedition.lcdui.Command mirar
private javax.microedition.lcdui.Command coger
private javax.microedition.lcdui.Command inven
private javax.microedition.lcdui.Command volver
private javax.microedition.lcdui.Command mirarInv
private javax.microedition.lcdui.Command usarExt
private javax.microedition.lcdui.Command usarInt
private javax.microedition.lcdui.Command ok
private javax.microedition.lcdui.Command borrar
private java.lang.String frase
private javax.microedition.lcdui.Font fuente
private Frase dialogo
private GAEM midlete
private Inventario inventario
private int modoMenus
private Obj objetoInv
private Obj objetoInvTemp
private int cuadradoX
private int cuadradoY
private javax.microedition.lcdui.game.Layer[] listaLayer
private boolean usarInvSelec
private javax.microedition.lcdui.game.Sprite puntero
private int punteroCol
private int punteroRow
private javax.microedition.lcdui.Image punteroImg
private javax.microedition.lcdui.Image img
private javax.microedition.lcdui.Image imagenObjeto
private boolean volverDeInventario
true
si pasa del modo 2 o el 3 al 1. si no es false
.
private int teclilla
private int autoHorizontal
private int autoVertical
private boolean primeraVez
private Animador animadorDeObjetos
private boolean siguientePantalla
true
cuando hay que cambiar de mapa. Si no es false
.
private boolean siguienteNivel
true
cuando hay que cambiar de nivel. Si no es false
.
private java.lang.String[][] listaNiveles
listaNiveles[nivel][0]; //nombre del nivel
listaNiveles[nivel][1]; //mapas en nivel
private int nivelActual
private int mapaActual
private int mapaSiguiente
private int inventarioObjActual
public int numeroPartida
public boolean mapaCambiado
true
cuando se ha usado o cogido algun objeto del mapa y por lo tanto hay que guardar los datos en la RecordStore.
private Obj[] listaInventario
private SeparaDatosMapa separaDatosMapa
private SeparaDatosObjetosNW separaDatosObjetosNW
private boolean inventarioCargado
public LeeFichero fichero
private javax.microedition.rms.RecordStore recordRetorno
cierraBorraCreaRS(RecordStore, String)
private Obj resultadoColision
private int uX
private int uY
private boolean existeUltimo
private boolean[] verDescMapa
private java.lang.String descMapa
Constructor Detail |
public CanvasJuego(GAEM midlet)
midlet
- Objeto de la clase GAEM (midlet del juego). Sirve para hacer referencia a GAEM.exit()Method Detail |
public int compruebaUltimo()
public Inventario getInventario()
public Obj[] getListaObjetos()
public int getNivelActual()
public int getNumeroPartida()
public java.lang.String[][] getListaNiveles()
public int getMapaActual()
public SeparaDatosObjetosNW getSeparadorObjetos()
private void cambiaMapa(int mapa, int colDest, int rowDest)
private void cambiaMapa(int mapa)
mapa
- Número de mapa al que se cambia.private void separaDatosNiveles(java.lang.String str)
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).
str
- Contenido del fichero niveles.datprivate boolean movimientoAutomatico(Obj obj)
true
cuando llegue, de lo contrario devuelve false
.Este método se conoce como modo 4.
obj
- Obj hasta el que hay que mover el personaje.
true
si ha llegado al Obj, false
de lo contrario.private void creaObjetos(java.lang.String ficheroDeObjetos, int mapa)
ficheroDeObjetos
- Ruta al fichero de objetos.mapa
- Número de mapa que se establecerá en los Obj con cambiaMapa(int)
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)
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.
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)
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.
private void creaVacios()
public void stop()
public void start()
public void run()
run
in interface java.lang.Runnable
private void dibuja(javax.microedition.lcdui.Graphics g)
public void cuadrado(javax.microedition.lcdui.Graphics g, int x, int y, int ancho, int alto)
private void hayObjetos(int a, int b)
a
- Coordenada X del centro del cuadrado.b
- Coordenada Y del centro del cuadrado.public void commandAction(javax.microedition.lcdui.Command c, javax.microedition.lcdui.Displayable d)
commandAction
in interface javax.microedition.lcdui.CommandListener
c
- El Command.d
- El Displayable.private void setModoMenus(int i)
i
- Modo al que se cambia.private void compruebaPosicion()
private void muestraInventario()
private void ocultaInventario()
private Personaje creaPersonaje()
private javax.microedition.lcdui.game.Sprite creaPuntero()
private Obj colisiones()
movimientoAnterior()
.
private void movimientoAnterior()
colisiones()
.
private void scroll(char c, boolean b)
c
- Dirección. Puede valer 'x' o 'y'.b
- Sentido. true
es positivo y false
es negativo.private void teclas()
protected void keyPressed(int keyCode)
public void mueveCuadradoAtras()
private void teclasPuntero()
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)
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.
private void guarda(int estado, int invent, int numObj, int numMapa)
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.private javax.microedition.rms.RecordStore cierraBorraCreaRS(javax.microedition.rms.RecordStore rs, java.lang.String nom)
rs
- La RecordStore a cerrar.nom
- El nombre de la RecordStore a borrar y crear.
private void borra()
private void carga(boolean b)
b
- true
si hay que cargar los objetos del mapa, false
si hay que cargar los del inventario.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |