这是一个愚蠢的问题.
你如何阅读playn游戏中的文件?我尝试使用File和Scanner,就像我通常在标准的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);
}
}
Run Code Online (Sandbox Code Playgroud)
我测试了File.canRead(),canWrite()和Execute(),它们都返回false.
我应该使用assetMannager().getText()还是什么?如果是这样的话可以有人告诉我它是如何工作的吗?(或者ResourceCallback的工作原理和方式是什么?)
我的目标是让一个名为"Maps"的文件夹以常规文本格式填充地图,就像标准的Image文件夹一样.
此致,托吉尔
你不能在PlayN游戏中进行普通的文件I/O,因为游戏被编译成JavaScript并在浏览器中运行(当使用HTML5后端时),并且浏览器不支持文件I/O(至少不支持通用文件)您出于这些目的所需的I/O).
浏览器甚至不支持字节流或任何类型的二进制I/O的想法(这可能最终到达,但它将在所有浏览器支持之前很久).
所以你必须用来AssetManager.getText读取数据文件.如果您愿意,可以使用JSON对它们进行编码,并使用PlayN.json()它们进行解码,或者您可以使用自己的基于字符串的自定义格式.
如果您不打算使用HTML5后端进行部署,则可以创建"LevelReader"接口并在Android或iOS后端实现该接口,并在这些平台上使用本机文件I/O功能.
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |