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

📄 datamanager.java

📁 一款Java开发的打飞机小游戏
💻 JAVA
字号:
import java.io.*;
import java.util.Vector;
import java.util.StringTokenizer;

/**
 * 数据管理,主要用于加载关卡文件
 * @author fantasyer
 * @version 1.0
 */
public class DataManager
{
    /*
     * 从文件加载数据,并将其保存在Vector中
     * @param filename 关卡文件名
     * @return 返回保存有关卡信息的Vector,如果失败返回null
     */
    public static Vector loadData(String filename)
    {
        Vector enemys = new Vector();
        try
        {
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    Class.forName("DataManager").getClassLoader().
                    getResourceAsStream(filename)));

            String str = "";
            while ((str = in.readLine())!=null)
            {
                if (str.startsWith("##"))
                { //忽略注释语句
                    continue;
                }
                else
                {
                    Enemy e = parse(str); //忽略分析异常的信息
                    if (e!=null)
                    {
                        enemys.addElement(e);
                    }
                }
            }
            in.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return null;
        }
        return enemys;
    }

    /**
     * 根据文本信息构建一个Enemy对象
     * @param str 待分析的文本信息
     * @return 构建的Enemy对象,如果失败返回null
     */
    public static Enemy parse(String str)
    {
        try
        {
            StringTokenizer tokens = new StringTokenizer(str);
            int startY = Integer.parseInt(tokens.nextToken());
            int x = Integer.parseInt(tokens.nextToken());
            int y = Integer.parseInt(tokens.nextToken());
            int xspeed = Integer.parseInt(tokens.nextToken());
            int yspeed = Integer.parseInt(tokens.nextToken());
            int movetype = Integer.parseInt(tokens.nextToken());
            int firetype = Integer.parseInt(tokens.nextToken());
            int life = Integer.parseInt(tokens.nextToken());
            int kind = Integer.parseInt(tokens.nextToken());

            return new Enemy(startY, x, y, xspeed, yspeed, movetype, firetype,
                             life, kind);
        }
        catch (NumberFormatException e)
        {
            return null;
        }
    }
}

⌨️ 快捷键说明

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