⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 separadatosobjetosnw.java

📁 j2me游戏引擎
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*        
        GAEM - Graphical Adventure Engine for Mobiles (version 0.1)
        Copyright (C) 2005 Victor Borrull
        
        This file is part of GAEM.
        GAEM is free software; you can redistribute it and/or modify it under the terms
        of the GNU General Public License as published by the Free Software Foundation; either
        version 2 of the License, or (at your option) any later version.
        GAEM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
        without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
        See the GNU General Public License for more details.
        You should have received a copy of the GNU General Public License along with this program;
        if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

/**     Esta clase llama a {@link CanvasJuego#leeFichero(String) CanvasJuego.leeFichero(String)} para leer el fichero y luego separa los datos.
*       Para separar los datos de los Objetos existen 2 metodos:<br>
*       - {@link #separaDatosObjetosNW(String, int, int, CanvasJuego) separaDatosObjetosNW(String, int, int, CanvasJuego)}<br>
*       - {@link #separaDatosObjetosNW(String, CanvasJuego) separaDatosObjetosNW(String, CanvasJuego)}
*    <p>El primerosirve para extraer un solo Obj y el segundo para extraer todos los Objs. El segundo llama al primero y le pasa -1 como
*       n鷐ero de Obj y n鷐ero de mapa.
*/
public class SeparaDatosObjetosNW {
        /**Char de datos leido.*/
        private char letrita;
        /**Cadena resultado de ir concatenando la variable {@link #letrita letrita}.*/
        private String cadena;
        /**Cuenta las <i>letras separadoras<i> (char) leidas.*/
        private int contadorDeLetritas;
        /**Campo leyendose actualmente.*/
        private int numeroDeCampo;
        /**Columna de Obj.*/
        private int oCol;
        /**Fila de Obj.*/
        private int oRow;
        /**N鷐ero de estados.*/
        private int oEst;
        /**Descripci髇.*/
        private String oDesc;
        /**Ruta al fichero de la imagen.*/
        private String oImg;
        /**Propiedad cogible.*/
        private boolean oCogible;
        /**Frase al coger/no coger.*/
        private String oFraseCogido;
        /**Posici髇 en lista del Objeto usable.*/
        private int oUsable;
        /**Estado del Objeto usable.*/
        private int oUsableEnEstado;
        /**Mapa del Objeto usable.*/
        private int oNumeroMapa;
        /**Frase de error si son usables pero no en este estado.*/
        private String oFraseError;
        /**Frase de uso del estado anterior.*/
        private String oFrase;
        /**蚽dice de array para canvas.listaObjetos[].*/
        private int numeroObj;
        /**N鷐ero de estado para a馻dir nuevo estado en su posici髇.*/
        private int numeroEstado;
        /**N鷐ero de campo donde comienzan a definirse los estados posteriores al cero.*/
        private int comienzoEstado;
        /**N鷐ero de campo final.*/
        private int finDePropiedades;
        /**<code>true</code> si es est醫ico, <code>false</code> si es animado.*/
        private boolean objetoEstatico;
        /**<code>true</code> si es clave, <code>false</code> si no lo es.*/
        private boolean oObjetoClave;
        /**Mapa destino al que conduce un Obj clave.*/
        private int oMapaDestino;
        /**Comprueba si se ha guardado el mapa destino del Obj clave y hay que pasar al siguiente campo, o si no se ha guardado y hay que guardarlo.*/
        private boolean mapaDestinoGuardado;
        /**Columna destino del Obj clave.*/
        private int oKCol;
        /**Fila destino del Obj clave.*/
        private int oKRow;
        
        /**     Obj retornado por {@link #separaDatosObjetosNW(String, int, int, CanvasJuego) separaDatosObjetosNW(String, int, int, CanvasJuego)}. Si el m閠odo se invoca desde
        *       {@link #separaDatosObjetosNW(String, CanvasJuego) separaDatosObjetosNW(String, CanvasJuego)}, retorno vale {@link CanvasJuego#vacio CanvasJuego.vacio}.*/
        private Obj retorno;
        /**Almacena el fichero leido.*/
        private String str;
        
        /**Constructor vac韔.*/
        public SeparaDatosObjetosNW() {
        }
        /**Inicializa las variables.*/
        public void inicializa() {
                letrita = ' ';
                cadena = "";
                oDesc = "";
                oImg = "";
                oFraseCogido = "";
                oFraseError = "";
                oFrase = "";
                contadorDeLetritas = 0;
                oCol = 0;
                oRow = 0;
                oUsable = 0;
                oUsableEnEstado = 0;
                oNumeroMapa = 0;
                numeroObj = 0;
                numeroEstado = 0;
                oMapaDestino = 0;
                numeroDeCampo = 1;
                oEst = 1;
                oCogible = true;
                objetoEstatico = true;
                oObjetoClave = false;
                mapaDestinoGuardado = false;
                oKCol = -1;
                oKRow = -1;
                comienzoEstado = 10;
                finDePropiedades = 18;
        }
        /**     Separa datos de Objs del mapa. Llama a {@link #separaDatosObjetosNW(String, int, int, CanvasJuego) separaDatosObjetosNW(String, int, int, CanvasJuego)} y le
        *       pasa -1 como numero de objeto y -1 como numero de mapa.
        *       @param path Ruta al fichero de Objs.
        *       @param canvas Referencia al CanvasJuego.
        */
        public void separaDatosObjetosNW(String path, CanvasJuego canvas){
                retorno = canvas.vacio;
                separaDatosObjetosNW(path, -1, -1, canvas);
        }
        /**     Separa datos de Obj(s) de mapa. Puede elegirse el n鷐ero de Obj a cargar y el mapa al que pertenece para que devuelva
        *       susodicho Obj, o pasarle -1 como esos par醡etros para que cargue y haga las llamadas para crear todos los Objetos de un mapa.
        *       @param path Ruta del fichero a leer.
        *       @param numObj Posici髇 en lista del Objeto a extraer.
        *       @param numMapa N鷐ero de mapa al que pertenece el Objeto.
        *       @return Obj a extraer u Obj vac韔 si el m閠odo se invocaba desde {@link #separaDatosObjetosNW(String, CanvasJuego) separaDatosObjetosNW(String, CanvasJuego)}.
        */
        public Obj separaDatosObjetosNW(String path, int numObj, int numMapa, CanvasJuego canvas) {
                inicializa();
                str = canvas.fichero.leeFichero(path);
                for (int i = 0; i < str.length(); i++) {
                        letrita = str.charAt(i);
                        if (letrita == '|') {
                                contadorDeLetritas++;
                                if (contadorDeLetritas == 1) {
                                        if (numMapa == -1 & numObj == -1) {
                                                canvas.listaObjetos = new Obj[Integer.parseInt(cadena)];
                                        }
                                } else {
                                                try {
                                        switch (numeroDeCampo) {
                                                case 1:
                                                if (numeroObj == numObj) {      //el que viene es el ke se guarda
                                                        numMapa = -1;
                                                } else if ((numeroObj == numObj + 1) & numeroObj != 0) {   //el anterior al ke viene era el guardado
                                                        i = str.length();
                                                        break;
                                                }
                                                        if (cadena.equals("a")) {            //objeto animado!
                                                                objetoEstatico = false;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -