Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java映射导入类型_Java_Arrays_File_Vector_Ascii - Fatal编程技术网

Java映射导入类型

Java映射导入类型,java,arrays,file,vector,ascii,Java,Arrays,File,Vector,Ascii,我正在用Java创建一个游戏,目前我将ASCII地图(world)导入到2D数组中,例如: world.txt ################### #-----------------# #-----###---------# #-----###---------# #-----------------# ################### 在Java中: char[][] world = new char[lines][characters_per_line]; // Import

我正在用Java创建一个游戏,目前我将ASCII地图(world)导入到2D数组中,例如:

world.txt

###################
#-----------------#
#-----###---------#
#-----###---------#
#-----------------#
###################
在Java中:

char[][] world = new char[lines][characters_per_line];
// Import ASCII map into world[y][x] array so that world[2][6] would give: #
然而,我计划创建巨大的地图 (10000 x 10000个瓷砖,其中一个瓷砖代表大约5个像素)。由于这些地图需要由游戏客户端(从游戏服务器)下载,因此需要大量带宽

因此,我考虑使用位图而不是ASCII贴图来导入,但这些贴图也很大,而且随着贴图变大,将很难管理

我正在寻找一种文件类型,它的文件大小相对于位图和ASCII贴图较小,可以在相同的上下文中使用。
(例如,某些矢量文件)

根据数据,您可能只希望传输实际放置“#”的位置。此外,还可以对有多少个后续的“#”进行编码。例如:

0 0 21
1 20 2
2 6 3
...
等等。把这个读作

  • 在位置0,0处有21个后续的“#”(环绕到下一行)
  • 在位置120处有两个后续的“#”
  • 在位置26处有3'#'

  • 为什么不把地图和游戏一起交给客户呢?只需在登录请求时验证
    映射文件
    。例如:您将向客户端发送映射名称,在响应中,他将向您发送md5哈希,您将加入或拒绝他。这种方法不需要下载。这是个好主意,但你不认为ASCII映射或位图在这方面效率很低吗?特别是当文件大小变得非常大时?如果您要传输数据压缩,那么使用当前使用的方法就相当容易了,因为这些文件只是普通文件,有很多常见字符。请务必先尝试简单的解决方案。查看使用
    gzip
    压缩地图的效果,然后查看只在服务器上打开
    gzip
    编码是否足够,而不需要在代码中插入代码。