问题标签 [tmx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
395 浏览

cocos2d-iphone - SneakyInput、正交图块地图、碰撞检测和 cocos-2d

在这个主题的任何地方都找不到太多帮助——我一直在试图弄清楚如何在正交瓷砖地图上实现虚拟方向键来模拟 GBA 口袋妖怪/塞尔达游戏中看到的运动。

有人有我应该看的好教程吗?如果没有,我也会欣赏示例代码。

0 投票
1 回答
2367 浏览

file - 如何创建 .tmx 文件“数据”?

我目前正在尝试使用 tileD 创建一个随机地图,但我无法解码 .tmx 文件中的“数据”。我读到数据是 base64 编码和 gzip 压缩但没有(我搜索过的)实际上得到了一些有用的结果。

有没有人成功解码“数据”?我可以举一个完整的例子来说明“数据”在 xml 中的样子吗?

如果有人知道在 XML 中创建“数据”的格式是什么,您可以与我们分享吗?

0 投票
1 回答
474 浏览

cocos2d-iphone - 为什么 [TMXLayer positionAt: CGPoint] 对我不起作用?

我试图在我的 .tmx 地图中找到特定图块的像素位置。CCTMXLayer 类的 positionAt: 方法应该可以解决问题,但是每当我尝试使用它时,它都会返回一个坐标为 (0,0) 的 CGPoint。这是我正在使用的代码的一部分。

无论 CGPointMake 的 x 和 y 的值是什么,CGPoint (0,0) 的值都会不断被记录,我不明白为什么。

编辑:

我只是用地图错误地声明我的图层吗?这是我的代码。

0 投票
1 回答
375 浏览

c++ - 游戏实体类型分配

我正在将基于 tile 的 2D 游戏迁移到 C++,因为我真的不是 Java 的粉丝(有些功能很好,但我就是不习惯)。我正在使用 TMX 平铺地图。这个问题是关于如何将对象定义转换为实际的游戏实体。在 Java 中,我使用反射来分配指定类型的对象(假设它派生自基本游戏实体)。

这工作得很好,但是这个特性在 C++ 中不可用(我明白为什么,我没有抱怨。我发现反射很乱,我很犹豫在 Java 中使用它,哈哈)。我只是想知道翻译这些数据的最佳方法是什么。我的想法是一个基类,所有实体都可以从中派生(这似乎很标准),然后让加载程序根据 TMX 映射中的“类型”值分配派生类型。我想了两种方法来做到这一点。

  1. 一个巨大的开关盒块。冗长而恶心。我怀疑是否有人会提出这个建议(但这是显而易见的)。
  2. 使用 std::map,它将任意类型名称映射到函数以分配与所述类型名称相对应的所述类。
  3. 最后,我曾想过制作一个基类的实体,并为不同的实体类型使用脚本。脚本本身会向系统注册它们的实体类型,尽管游戏需要在加载时加载所述实体类型脚本(这可以通过一个主要的实体类型声明脚本来完成,这将使每个实体的编辑数量减少到 2 :实体创建和实体注册)。

虽然选项二看起来不错,但我不喜欢为每种类型更改 3 段代码(定义实体类,定义分配函数,并将函数添加到 std::map)。选项 3 听起来不错,除了我认为的两件事:我害怕纯脚本驱动实体的速度。另外,我知道将脚本添加到我的引擎本身将是一个大项目(添加所有与库交互的辅助函数会很有趣)。

有谁知道更好的解决方案?也许不是更好,但只是更清洁。每个实体类型的代码编辑更少。

0 投票
1 回答
875 浏览

objective-c - 使用 Tiled 和 Cocos2d 的平铺贴图时,如何避免对视网膜的双重努力

我有视网膜瓦片地图工作,15x10 瓦片,64x64 瓦片。问题是对于非视网膜设备,我需要制作 32x32 瓷砖的 15x10 瓷砖。我不想重新创建 Tile,这只是更改 XML (.tmx) 文件的情况吗?是否有自动化工具或其他解决方法?我一直在网上寻找,但没有得到太多帮助。

谢谢

0 投票
1 回答
306 浏览

tmx - 将 hd TMX Tilemap 转换为 sd,我应该手动执行此操作吗?

我有一个 960*640 像素的瓷砖地图,使用 64*64 瓷砖进行高清视网膜显示。现在,我需要一个用于 sd 显示的 tilemap。(我猜它应该是 480*320 像素,使用 32*32 tile)

那么,有没有简单的方法呢?

在 Mac 应用商店中查找“Unretiner”等工具。

'hd img -> sd img' by Unretiner
'hd tmx -> sd tmx' by ??

感谢你。

0 投票
1 回答
743 浏览

c++ - Qt中如何使用TMX数据【C++游戏】

我正在学习如何在 Qt creator 中做事,并下载了“Tiled”,这是一个输出 .TMX 文件的平铺地图创建器。我用几个不同颜色的瓷砖创建了一个简单的地图。

现在,在 Qt Creator 2.4.1 [最新版本......它说“基于 Qt 4.7.4(32 位)”],我希望能够在 Qt C++ 项目中使用它。一些谷歌搜索让我找到了 TMX 解析器 [http://code.google.com/p/tmx-parser/] 但我无法获得源代码 [我将 Silk SVN 下载到 SVN 签出代码,但我m 无法设置代理],但无论如何 TMX 应该像 XML,并且 Qt 有自己的 XML 解析器,对吧?

我的最终目标是能够以某种方式在一个简单的游戏中使用我自己的平铺地图,并使用我的 C++ 技能在 Qt Creator 中进行编码。有什么帮助吗?

0 投票
0 回答
649 浏览

cocos2d-iphone - Cocos2D:TMX 地图无法识别高清文件

我在 Cocos2d 中遇到了 -hd 后缀文件的问题。我的 SD tilesize 是 52x52,地图是 6 宽 x 9 高,HD tilesize 是 104x104。一切都适当地调整了大小,我的 TMX 地图和瓦片集都有 SD 和 HD 版本。

在 Retina 模拟器中,一切正常,尽管在日志中出现以下无意义的行:

但在设备上,考虑到错误,它会执行您所期望的操作,并使用看起来很糟糕并且会混淆碰撞检测的原始 SD 文件。它也不会在 TMX 文件上生成 #1040 错误,而且我怀疑它根本没有使用 -hd TMX 文件;当我删除它时,我从来没有看到一条警告我它丢失的行。

这是怎么回事,我该如何解决?

0 投票
1 回答
773 浏览

android - 和引擎瓦片地图重生

我开始使用 AndEngine gles2 开发一个安卓游戏,它是一个非常好的游戏引擎,我发现了很多如何使用它的例子。我的游戏是一种使用平铺地图、精灵等的 RPG 传统游戏:我的问题是如何设置 mounster 重生区域(如口袋妖怪游戏中的长草区域)我阅读了很多平铺地图示例但没有有一个关于这个的例子,我使用平铺地图编辑器,在那里我可以设置图层的属性并指定是否有芒斯特重生区域,如果有人可以告诉我该怎么做,我会非常感激。

0 投票
0 回答
263 浏览

andengine - AndEngine TMX 性能

在 AndEngine 中显示 TMX 地图的性能很差。有没有加快速度的机会?TMXLayer.draw() 分别绘制每个图块。有没有机会将多个 TMX 瓦片放到一个顶点缓冲区并一次绘制它们?如果是这样,有人可以显示一些(伪)代码吗?