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

📄 levelmanager.java

📁 这个是我写的小程序, 用来参加比赛的,现在比赛已经结束了, 把这个小游戏发表请大家给评评分, 看看有什么不合理的地方帮忙改改,提意见也行啊,谢谢! 注意:只有源码,还要自己编译
💻 JAVA
字号:
package pushbook.core;

import java.io.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import org.xml.sax.helpers.*;
import java.util.Vector;

/**
 * <p>Title: 推箱子</p>
 * <p>Description: 关卡数据管理类</p>
 * <p>Copyright: 无版权</p>
 * <p>Company: 吉林省前郭尔罗斯蒙古族自治县第五高级中学</p>
 * @author not attributable
 * @version 1.0
 */
public class LevelManager extends DefaultHandler
{
    //操作控制中心的对象
    private ControlCenter controlCenter = null;

    //保存地图的临时变量
    private Vector mainMap = new Vector();
    private Vector activeMap = new Vector();

    public void endDocument () throws SAXException
    {
        int tempx=-1, tempy=-1;
        String line = null;
        String activeline = null;
        String[] elementlist = null;
        String[] activelist = null;
        GameElement nge = null;
        GameElement templet = null;
        for(int i=0;i<mainMap.size();i++)
        {
            line = (String)mainMap.get(i);
            activeline = (String)activeMap.get(i);
            elementlist = line.split(",");
            activelist = activeline.split(",");
            if(tempx == -1 || tempy == -1)
            {
                controlCenter.mapWidth = elementlist.length * Invariable.unitSize;
                controlCenter.mapHeight = mainMap.size() * Invariable.unitSize;
                tempx = (Invariable.gameAreaWidth-controlCenter.mapWidth)/2 +
                    Invariable.gameAreaX;
                tempy = (Invariable.gameAreaHeight-controlCenter.mapHeight)/2 +
                    Invariable.gameAreaY;
            }
            for(int j=0;j<elementlist.length;j++)
            {
                templet =
                    (GameElement)controlCenter.gameTemplet.get(elementlist[j]);
                nge = new GameElement(tempx,tempy,templet.img);
                nge.canMove = templet.canMove;
                nge.active = templet.active;
                nge.canOvercast = templet.canOvercast;
                nge.isDestination = templet.isDestination;
                nge.templetName = elementlist[j];
                if(nge.img != null) controlCenter.haveImageElement++;
                controlCenter.gameElements.add(0,nge);
                if(templet.isDestination) controlCenter.destinationElements.add(nge);

                templet =
                    (GameElement)controlCenter.gameTemplet.get(activelist[j]);
                if(templet.canMove)
                {
                    nge = new GameElement(tempx, tempy, templet.img);
                    nge.canMove = templet.canMove;
                    nge.active = templet.active;
                    nge.canOvercast = templet.canOvercast;
                    nge.templetName = activelist[j];
                    controlCenter.activeElement ++;
                    controlCenter.gameElements.add(nge);
                }
                tempx += Invariable.unitSize;
            }
            tempx = (Invariable.gameAreaWidth-controlCenter.mapWidth)/2 +
                Invariable.gameAreaX;
            tempy += Invariable.unitSize;
        }
    }

    public void startElement(String namespaceURI, String localName,
                             String qName, Attributes attr)
        throws SAXException
    {
        if("element".equals(qName))
        {
            boolean cm,co,act,isdes;
            GameElement tge = new GameElement();
            String img = attr.getValue("img");
            String ID = attr.getValue("ID");
            cm = "true".equals(attr.getValue("canMove"));
            co = "true".equals(attr.getValue("canOvercast"));
            act = "true".equals(attr.getValue("active"));
            isdes = "true".equals(attr.getValue("isDestination"));
            tge.canMove = cm;
            tge.canOvercast = co;
            tge.active = act;
            tge.img = img;
            tge.isDestination = isdes;
            tge.templetName = ID;
            controlCenter.gameTemplet.put(ID,tge);
        }
        else if("mainMap".equals(qName))
        {
            mainMap.add(attr.getValue("dataline"));
        }
        else if("activeMap".equals(qName))
        {
            activeMap.add(attr.getValue("dataline"));
        }
        else if("title".equals(qName))
        {
            Invariable.mainTitle = attr.getValue("value");
            controlCenter.gameTitle = attr.getValue("value");
        }
        else if("music".equals(qName))
        {
            controlCenter.gameMusic = attr.getValue("value");
        }
        else if("unitSize".equals(qName))
        {
            String temp = attr.getValue("value");
            Invariable.unitSize = Integer.parseInt(temp);
        }
        else if("celebrate".equals(qName))
        {
            controlCenter.gameCelebrate = attr.getValue("value");
        }
    }


    public void loadLevelData(ControlCenter cc,String levelfile)
    {
        if(cc != null)
        {
            controlCenter = cc;
            try
            {
                String resource =
                    getClass().getResource(levelfile).toString();
                SAXParserFactory spf = SAXParserFactory.newInstance();
                SAXParser saxparser = spf.newSAXParser();
                saxparser.parse(resource, this);
            }
            catch (Exception e)
            {
                System.out.println(e.getMessage());
            }
        }
    }
}

⌨️ 快捷键说明

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