ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

使用 libtiled-java 在 Java 项目中加载与查看 Tiled 地图:构建、API 与 TMX Viewer 实战

使用 libtiled-java 在 Java 项目中加载与查看 Tiled 地图:构建、API 与 TMX Viewer 实战 使用 libtiled-java 在 Java 项目中加载与查看 Tiled 地图构建、API 与 TMX Viewer 实战【免费下载链接】tiledFlexible level editor项目地址: https://gitcode.com/gh_mirrors/ti/tiledTiledREADME.md是当前仓库中的灵活关卡编辑器其util/java目录承载了一整套面向 JVM 生态的地图数据支持方案libtiled-java负责把 Tiled 地图TMX 格式解析为纯 Java 对象模型tmxviewer-java则以一个可运行的 Swing 示例展示如何加载并渲染地图。本文以 util/java/README.md 为主干结合子模块 README、Maven 工程配置与源码实现系统讲解如何打包、集成并在 Java 项目中渲染 Tiled 地图。读完后你将掌握完整的 Maven 构建流程、Maven/sbt 依赖接入方式、核心类层次与渲染调用链并能独立运行和改造官方示例查看器。模块总览util/java目录的两个角色从仓库目录结构看util/java 是一个 Maven 多模块父工程pom打包类型见 util/java/pom.xml由两个子模块构成子模块目录职责libtiled-javautil/java/libtiled-java核心库源码为 Java 项目提供 Tiled 地图加载与渲染能力tmxviewer-javautil/java/tmxviewer-java基于 libtiled-java 的示例查看器演示地图的读取与绘制两个子目录各自包含独立的README.md、pom.xml与源码树分别对应当前目录 README 中 Every folder contains a README.md related to its contents 的说明。父 POM 中通过modules同时声明libtiled-java与tmxviewer-javautil/java/pom.xml因此对父目录执行一次 Maven 命令即可串联构建两个模块。环境准备Maven 与 Java 版本要求构建 Java 子模块前需要先安装 Apache MavenMaven 版本最低要求3.5.4不满足时构建会被 enforcer 规则直接拦截Java 版本父 POM 统一设置maven.compiler.source/maven.compiler.target为11util/java/pom.xml并使用set-compiler-releaseprofile 在 JDK 9 环境下以maven.compiler.release11编译util/java/pom.xml确保源码 API 与运行目标一致JDK 9 额外依赖libtiled-java 的java-11-profile会在 JDK 9 及以上自动引入jakarta.xml.bind-api、jakarta.annotation-api与jaxb-runtimeutil/java/libtiled-java/pom.xml这是 JAXB 从 JDK 剥离后的必要补充也是 CHANGELOG 中修复 Java 21 下运行问题util/java/CHANGELOG.md的底层背景。确认环境后在当前util/java目录的终端cmd、PowerShell 或 bash中即可开始构建。打包整个 Java 工程原文档给出的打包入口是单一命令mvn package由于父 POM 声明了两个子模块该命令会在util/java下递归执行为libtiled-java与tmxviewer-java分别完成编译、测试与打包。命令结束后按文档说明检查以下两个输出目录util/java/libtiled-java/target生成libtiled-version.jar核心库util/java/tmxviewer-java/target生成tmxviewer-version.jar可执行查看器。其中 tmxviewer 的 jar 通过maven-shade-plugin打成 fat jarminimizeJar开启精简ManifestResourceTransformer将主类设为TMXViewerutil/java/tmxviewer-java/pom.xml因此产物可以直接java -jar运行。libtiled-java 自身则通过jaxb-maven-plugin基于 XSD 生成org.mapeditor.core包下的模型类util/java/libtiled-java/pom.xml从构建层面保证了 TMX/TSX 数据与 Java 对象的映射一致性。编译安装与进阶 Maven 目标仅mvn package会在本地仓库留下不完整的依赖状态——tmxviewer-java 依赖同版本libtiledversion${project.version}/version见 util/java/tmxviewer-java/pom.xml若直接单独构建 tmxviewer 而 libtiled 尚未安装到本地 Maven 仓库会因找不到依赖而失败。因此子模块 README 给出正确顺序util/java/tmxviewer-java/README.md在util/java/libtiled-java目录执行mvn clean install把 libtiled.jar 安装进本地 Maven 仓库再进入util/java/tmxviewer-java执行mvn clean install编译查看器之后即可用java -jar tmxviewer-Version.jar [file]启动。libtiled-java 的 READMEutil/java/libtiled-java/README.md还补充了面向库开发者的目标mvn clean install清理、编译并安装 libtiled.jar 到本地仓库mvn test -P release-profile在 release-profile 下运行全部单元测试该 profile 通过-DperformReleasetrue激活见 util/java/pom.xml同时包含 GPG 签名与 javadoc 生成等发布动作mvn site生成报告与文档站点父 POM 的reporting节配置了 javadoc、checkstyle、PMD、SpotBugs、JaCoCo 覆盖率、jdepend、surefire 测试报告等全套质量报表util/java/pom.xml。在自己的 Java 项目中接入 libtiled核心库发布在 Maven Centralorg.mapeditor/libtiled。Maven 用户在pom.xml的dependencies中加入util/java/libtiled-java/README.mddependency groupIdorg.mapeditor/groupId artifactIdlibtiled/artifactId versionx.y.z/version /dependency其中x.y.z请替换为实际发布版本仓库当前为1.4.4-SNAPSHOT见 util/java/pom.xml最近一次已发布记录为1.4.3见 util/java/CHANGELOG.md。sbt 用户则在build.sbt中添加util/java/libtiled-java/README.mdlibraryDependencies org.mapeditor % libtiled % x.y.z库本身仅依赖测试期的junit-vintage-engineutil/java/libtiled-java/pom.xml运行时无第三方依赖负担JDK 9 所需的 JAXB 实现已由 profile 内置接入非常轻量。许可方面libtiled-java 采用 BSD 许可详见仓库根目录 LICENSE.BSD可放心用于商业项目。核心 API 架构从 TMX 文件到渲染libtiled-java 的源码位于 util/java/libtiled-java/src/main/java/org/mapeditor按职责划分为四个子包org.mapeditor.core —— 地图对象模型与 Tiled 数据格式一一对应的核心模型类Map地图根对象持有方向orientation、瓦片尺寸、图层集合与属性TileLayer/ObjectGroup/MapLayer图层体系MapLayer为抽象基类TileLayer表示瓦片层ObjectGroup表示对象层Tile/TileSet瓦片与图块集AnimatedTile与Sprite支持动画瓦片MapObject/Properties地图对象与键值属性容器。org.mapeditor.io —— 读写与缓存TMXMapReaderTMX 地图加载入口readMap(String)返回MapTMXMapWriter将对象模型写回 TMXMapReader抽象基类、TilesetCache瓦片缓存、xml子包中的XMLWriter低层 XML 工具。org.mapeditor.view —— 渲染器MapRenderer抽象基类OrthogonalRenderer/IsometricRenderer/HexagonalRenderer分别对应正交、等距、六边形三种投影。org.mapeditor.util —— 辅助工具TileCutter/BasicTileCutter瓦片切割ImageHelper/TransparentImageFilter/URLHelper/StreamHelper图像、URL 与流的通用处理。典型加载流程只需一行new TMXMapReader().readMap(file)随后通过map.getLayers()、map.getTileWidth()等访问器即可遍历和渲染地图这也正是示例查看器所演示的用法。实战剖析TMX Viewer 示例查看器util/java/tmxviewer-java/src/main/java/TMXViewer.java 是官方给出的最小可运行范例完整展示了读取 → 渲染 → 展示三步流程非常适合作为自定义地图工具的开发模板。命令行参数处理TMXViewer.java遍历参数-?与-help打印帮助以-开头视为未知选项其余视为待打开的地图文件未提供文件时同样打印帮助信息。地图加载TMXViewer.javaTMXMapReader mapReader new TMXMapReader(); map mapReader.readMap(fileToOpen);加载失败时捕获异常并输出Error while reading the map:后退出成功则打印map.toString() loaded。渲染器选择TMXViewer.java根据map.getOrientation()分发到OrthogonalRenderer、IsometricRenderer或HexagonalRenderer默认情况返回null——这提示从源码结构看斜向/交错方向staggered/oblique在当前示例渲染器中未覆盖自定义工具若需支持可参考仓库 C 侧对应渲染器实现。图层绘制TMXViewer.javaMapView继承JPanel在paintComponent中先填充灰色背景再遍历map.getLayers()对TileLayer调用renderer.paintTileLayer(...)对ObjectGroup调用renderer.paintObjectGroup(...)。MapView同时实现Scrollable接口以瓦片宽高为滚动单位、按可视区域整块翻页TMXViewer.java交互体验与编辑器接近。窗口装配TMXViewer.java将MapView放入JScrollPane默认视口 800×600再装入JFramepack()后显示。从命令行运行查看器完成上文两步mvn clean install后在util/java/tmxviewer-java下执行java -jar tmxviewer-Version.jar [file][file]可替换为仓库内任意 TMX 地图例如examples/orthogonal-outside.tmx或examples/desert.tmx。不传参数会打印帮助信息支持-?/-help两个选项TMXViewer.java。若使用 IDE 开发直接以 Maven 工程方式导入项目pom.xml即可util/java/tmxviewer-java/README.md运行TMXViewer主类并传入地图文件参数。测试与质量保障libtiled-java的测试源码位于 util/java/libtiled-java/src/test/java/org/mapeditor覆盖核心与 IO 两层io/MapReaderTest.java地图读取正确性io/JaxbTest.javaJAXB 对象模型与 XML 的绑定core/MapObjectTest.java地图对象行为util/ImageHelperTest.java/StreamHelperTest.java/URLHelperTest.java工具类单元测试。父 POM 还通过maven-surefire-plugin3.2.5、JaCoCo 覆盖率与整套质量报表插件为库的持续集成提供支撑mvn test -P release-profile会显式启用全部测试skipTestsfalse见 util/java/pom.xml。CHANGELOG 记录的1.4.32025-06-02修复了 Java 21 运行、javadoc 生成与偶发测试失败问题util/java/CHANGELOG.md说明该库仍在持续维护并适配新版本 JDK。小结util/java为 Tiled 在 JVM 生态中的落地提供了完整链路mvn package一键产出核心库与查看器 jarlibtiled-java以轻量依赖提供从 TMX 解析到三种投影渲染的完整能力tmxviewer-java则是学习这套 API 的最佳起点。无论你是想在游戏中嵌入地图加载还是构建自己的地图预览工具都可以从 util/java/libtiled-java/README.md 的依赖配置起步参照 TMXViewer.java 的骨架快速落地。【免费下载链接】tiledFlexible level editor项目地址: https://gitcode.com/gh_mirrors/ti/tiled创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表