这是一个愚蠢的问题。
你如何阅读playn游戏中的文件?我尝试使用文件和扫描仪,就像我通常在标准的java程序中一样:
void readFromFile(){
int x;
int y;
int pixel;
int[][] board;
try{
Scanner scan = new Scanner(new File(in));
x = scan.nextInt();
y = scan.nextInt();
pixel = scan.nextInt();
Point start = new Point(scan.nextInt(), scan.nextInt());
Point dir = new Point(scan.nextInt(), scan.nextInt());
Point end = new Point(scan.nextInt(), scan.nextInt());
int antRoads = scan.nextInt();
board = new int[x][y];
for (int i = 0; i < y; i++){
for (int j = 0; j < x; j++){
board[i][j] = scan.nextInt();
}
}
lev = new Level(board, start, dir, end, antRoads, pixel, x, y);
} catch(FileNotFoundException e){
System.out.println(e);
}
}
我测试了File.canRead(),canWrite()和Execute(),它们都返回false。
我应该使用assetMannager()。getText()还是其他什么?如果是这样的话可以有人告诉我它是如何工作的吗? (或者ResourceCallback的工作原理和方式是什么?)
我的目标是让一个名为“Maps”的文件夹以常规文本格式填充地图,就像标准的Image文件夹一样。
此致 Torgeir
答案 0 :(得分:5)
你不能在PlayN游戏中进行普通的文件I / O,因为游戏被编译成JavaScript并在浏览器中运行(当使用HTML5后端时),并且浏览器不支持文件I / O(至少不支持出于这些目的,您需要的通用文件I / O。
浏览器甚至不支持字节流或任何类型的二进制I / O(这可能最终到达,但在所有浏览器都支持它之前的年龄)。
因此您必须使用AssetManager.getText
来读取数据文件。如果您愿意,可以使用JSON对它们进行编码,并使用PlayN.json()
对其进行解码,也可以使用自己的自定义字符串格式。
如果您不打算使用HTML5后端进行部署,则可以创建“LevelReader”界面并在Android或iOS后端实现该界面,并在这些平台上使用本机文件I / O功能。 / p>