接下来我觉得基础不够,就又找到了这个资料
http://www.cnblogs.com/htynkn/tag/libgdx/
学习到(十二)--TiledMap地图的使用遇到了一堆问题,难过了好几天,呵呵
1. 处理tmx文件
资料中说到:用工具Tile Map editor制作出tmx文件后用gdx-tiled-preprocessor处理一下。处理完成后会多三个文件,覆盖原来的同名文件即可。
短短的一句话,我弄到了晚上1点半,总算解决了
1)制作完tmx文件后,查看下使用的图片路径,不能是绝对路径:
以文本格式打开tmx文件,找到 source="tmw-desert-spacing.png" 如果是绝对路径,把前面的路径去掉
怎么产生的绝对路径,我还不太清楚,不过当时确实是绝对路径。。后来几天,我新生成的tmx文件,竟然都是相对路径~~~
2)用gdx-tiled-preprocessor处理tmx文件
我用的libgdx是最新的0.9.7,其中有gdx-tiled-preprocessor.jar文件,按照网上说的,
新建一个文件夹(TiledMap任意名均可),把jar文件放进去,然后新建两个子文件夹:in和out ,把tmx文件和使用的图片文件放入in
在TiledMap文件下 执行命令 java -jar gdx-tiled-preprocessor.jar in out
接下里就是一堆问题了,我一顿改,不行~~~~当时哭的心都有了
最后,我解决的方法是,在TiledMap文件下放入gdx.jar,gdx-tools.jar和gdx-tiled-preprocessor.jar三个jar
执行命令 java -classpath gdx.jar;gdx-tools.jar;gdx-tiled-preprocessor.jar com.badlogic.gdx.tiledmappacker.TiledMapPacker in out
另,我解决的过程中安装了最新版本的jdk(7.0),不知道是不是必须的,如果上述方法仍搞不定的朋友可以试一下啊.
呼~,,终于解决了,可以睡觉了
2.报错:com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: map/tmw-desert-spacing packfile (Absolute)
解决方法:
atlas = new TileAtlas(map, new FileHandle("data/map/")); 改成
atlas = new TileAtlas(map, Gdx.files.internal("data/map/"));就OK了
3.报错:java.lang.IllegalArgumentException: Bad position (limit 0): 8
是代码tileMapRenderer.render(c); (c为从舞台获得的照相机变量)报的错
这个问题困扰了我几晚,网上也没找到答案............
最后,无意中发现,竟然是图片制作有问题,我用Tiled Map Editor打开制作好的tmx文件时打不开,,才知道的...耽误了我好几天啊......郁闷
4.问题解决完了,终于可以运行了.....
OK,今天就到这里了