【发布时间】:2015-01-08 19:02:58
【问题描述】:
所以我目前正在制作一个 2D 游戏,其中地图预先生成在 .txt 文件中,然后读取并加载到数组中。
数组存储在 World 类中(我使用的是 greenfoot),我这样做的方法是:(从之前声明并初始化地图为世界的大小,地图是完美的矩形)
Scanner scan = new Scanner ( new File("map.txt"));
for(int i = 0; i<map.length;i++)
{
for( int j = 0;j<map[0].length; j++;)
{
map[i][j]=scan.NextInt();
}
}
(异常被捕获并在之后关闭扫描仪) 我的地图目前是 600x5000,这种传输数据的方法似乎真的很慢。有什么办法可以加快速度或使用更有效的方法来做到这一点?
提前致谢!
【问题讨论】:
-
您可以尝试让每 2 个字节(=每 2 个字符)代表一个地图块。所以你可以节省一些运行时间来检索地图
-
在竞赛编码世界中,推荐使用
BufferedReader而不是Scanner来读取数据,因为它更快。这在您的情况下也可能是有利的。 -
如果您的游戏中不需要超过 256 个对象,甚至每个字节都是一个块
-
@AdamCherti 嗨,我会调查的。目前 1 个 int 代表 1 个块。我有一张 5000x600 块的地图 LOL。所以我肯定会有超过 256 个对象。
-
@anorton 非常感谢!我去看看