📄 datamanager.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 + -