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

📄 separadatosmapa.java

📁 一个完全的j2me斜视角地图的rpg游戏
💻 JAVA
字号:
/*        
        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
*/        
import javax.microedition.lcdui.game.TiledLayer;
        /**
        *       Esta clase recibe el String que contiene todo el fichero 'nombreNivel_mapa_numeroMapa.dat' por medio del constructor,
        *       separa los datos e invoca a creaEscenario() pas醤dole los parametros necesarios para que retorne un TiledLayer
        *       que se almacena en {@link CanvasJuego#escenario CanvasJuego.escenario}.
        */
public class SeparaDatosMapa {
        /**Array unidimensional donde se guarda el mapa.*/
        private int [] mapita;
        /**Char de datos leido.*/
        private char letrita;
        /**Cadena resultado de ir concatenando la variable {@link #letrita letrita}.*/
        private String cadena;
        /**Cuenta las comas leidas.*/
        private int contadorDeLetritas;
        /**N鷐ero de campo a partir del cual viene el mapa.*/
        private int contadorDefault;
        /**Tama駉 del mapa.*/
        private int mCol, mRow;
        /**Ruta al fichero de las Tiles.*/
        private String mTiles;
        /**Tama駉 en pixeles de las Tiles.*/
        private int mTAncho, mTAlto;
        /**Posici髇 inicial del personaje en el mapa.*/
        private int posX, posY;
        /**Guarda la referencia a CanvasJuego.*/
        private CanvasJuego canvasJ;
        private String mDesc;

        /**     El constructor se encarga de separar los datos.
        *       @param enBruto Datos leidos del fichero del mapa.
        *       @param canvas
        */
        public SeparaDatosMapa(String enBruto, CanvasJuego canvas, boolean fondo) {
                /**     Inicializo variables*/
                canvasJ = canvas;
                letrita = ' ';
                cadena = "";
                contadorDeLetritas = 0;
                contadorDefault = 9;
                mCol = 0;
                mRow = 0;
                mTiles = "";
                mTAncho = 16;
                mTAlto = 16;
                posX = 0;
                posY = 0;
                mDesc = "";
                if (fondo)
                        contadorDeLetritas = 3;                 //los archivos del background no tienen posiciones de inicio ni descripcion.
                
                for (int i = 0; i < enBruto.length(); i++) {
                        letrita = enBruto.charAt(i);
                        if (letrita == '|') {
                                contadorDeLetritas++;
                                switch (contadorDeLetritas) {
                                        case 1:
                                                mDesc = cadena;
                                                break;
                                        case 2:
                                                posX = canvasJ.mPosXProta = Integer.parseInt(cadena) * 16;
                                                break;
                                        case 3:
                                                posY = canvasJ.mPosYProta = Integer.parseInt(cadena) * 16;
                                                break;
                                        case 4: {
                                                mCol = Integer.parseInt(cadena);
                                                break;
                                        }
                                        case 5: {
                                                mRow = Integer.parseInt(cadena);
                                                mapita = new int[mRow*mCol];                    //ha de ser global para inicializarse aqui
                                                break;
                                        }
                                        case 6: {
                                                mTiles = cadena;
                                                break;
                                        }
                                        case 7: {
                                                mTAncho = Integer.parseInt(cadena);
                                                break;
                                        }
                                        case 8: {
                                                mTAlto = Integer.parseInt(cadena);
                                                break;
                                        }
                                        default: {                                              //guarda el mapa
                                                if (contadorDeLetritas == contadorDefault) {
                                                        mapita[contadorDefault-9] = Integer.parseInt(cadena);
                                                        contadorDefault++;
                                                }
                                                break;
                                        }
                                }
                                cadena = "";
                        } else {
                                cadena += letrita;
                        }
                }
        }
        /**     Devuelve el escenario leido por el {@link #SeparaDatosMapa(String, CanvasJuego) el constructor} en forma de TiledLayer.
        *       La llamada a {@link CanvasJuego#creaEscenarioNW(int, int, String, int, int, int[]) CanvasJuego.creaEscenarioNW(int, int, String, int, int, int[])}
        *       se hace desde este m閠odo.
        */
        public TiledLayer devuelveEscenario() {
                //CREO EL ESCENARIO
                return canvasJ.creaEscenarioNW(mDesc, mCol, mRow, mTiles, mTAncho, mTAlto, mapita);
        }
}

⌨️ 快捷键说明

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