问题标签 [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 投票
3 回答
1427 浏览

linux - 是否有适用于 Linux 的命令行 TMX 编辑工具(多语言支持)?

我正在 TMX 中构建一个支持多语言的应用程序。我找到了一些适用于 Windows 的编辑器,但由于我是在远程服务器上开发的,所以我正在寻找一个用于 linux 的命令行工具来翻译字符串并将它们写入 TMX 文件。有谁知道这样的工具?

0 投票
2 回答
4578 浏览

java - 字符串 base64 解码 un-gzip 从 little-endian 4-byte int 到 java int

我正在尝试在 Android 中实现 TMX 文件,我希望有人能提供帮助。基于TMX 指南,为了获得 GID,我必须

首先对字符串进行base64解码,然后如果压缩属性设置为“gzip”,则将结果数据gunzip,如上例所示。最后,您可以为每个 GID 从数据流的开头到结尾一次读取 4 个字节。

我想我已经弄清楚了 base64 解码和“gunzip”,但下面代码的结果是 27,0,0,0 重复。我认为输出应该是

(0,0) (1,0) (2,0) (3,0) (0,1) (1,1) (2,1) (3,1) (0,2) (1,2) (2,2) (3,2)

谢谢!

0 投票
4 回答
10572 浏览

c# - 如何将 .tmx(平铺地图编辑器)文件导入我的 XNA 项目

我尝试将 .tmx(平铺地图编辑器)文件加载到我的项目中,但出现此错误:

无法自动检测要为“Level1.tmx”使用哪个导入器 没有处理此文件类型的导入器。在您的项目中指定处理此文件类型的导入器。

0 投票
1 回答
1976 浏览

c++ - 从 .tmx(平铺)文件解压缩 zlib 数据

我正在尝试编写一个 .tmx 加载器,它将平铺地图数据直接加载到我的游戏中。我已经编写了 Base64 解码器并解码了字符串。

但是,解压缩数据后我没有收到任何输出。我将引导您完成一个示例,以便您了解问题所在。

.tmx 文件,或者更确切地说是我正在尝试使用的代码行,如下所示:

首先,我有来自 .tmx 文件的 Base64 编码的 zlib 压缩数据字符串:

我像这样运行我的 Base64 解码器:

并得到

我只能假设这是正确的。我在 Wikipedia 示例上尝试了我的解码器,它给了我正确的输出。因此,我并不是假设我的 Base64 解码器是错误的。毕竟,我的输出在解压后至少应该返回某种废话,或者是流错误。

我正在使用 zlib 库和解压示例的复制粘贴版本(zpipe.c函数名为int inf(FILE *source, FIle *dest)主要是复制粘贴)

一些注意事项:为简洁起见,我删除了错误检查(示例代码和我的代码有很多)。在运行期间我没有收到任何错误消息。但是,输出文件是空的,我不知道为什么。

0 投票
1 回答
1895 浏览

iphone - TMX 地图文件 base_64 编码到底如何?

我正在为使用 .tmx 地图文件的 iOS 编写游戏。我在应用程序“平铺”中创建地图,然后在它们到达 iOS 之前的某个时间点,我用 Perl 解析它们。

当我将文件保存为直接 XML 时,perl 可以轻松解析它们。然而,cocos2d 坚持文件是 base64 编码的。“平铺”地图编辑器使用这种编码方案保存文件没有问题,iOS 可以很好地读取它们,但它给我的 perl 代码带来了问题。

出于某种原因,perl 中的标准 MIME::Base64 decode_base64() 方法在这里并没有减少芥末——当我解码字符串时,我得到一两个二进制字符——菱形框中的问号等。

TMX 文件格式的模糊文档使得不清楚在 base64 编码之前或之后是否有其他编码可能导致此问题。我查看了编码器的 cpp 源代码,看到了很多对 Latin1 的引用,但我无法详细解读发生了什么。

我注意到,当我尝试使用 MIME::Base64 进行自己的测试、编码然后解码测试字符串时,编码的文本看起来与我从 TMX 文件中看到的截然不同——例如,我的 base64 编码短字符串的文本如下所示:

但是来自 TMX 文件的 base64 编码文本如下所示:

关于我可能尝试解码看起来像这样的字符串的任何其他建议?

0 投票
2 回答
856 浏览

android - AndEngine 加载地图后错误:无效索引(onUpdate)致命异常:UpdateThread

我一直在使用 AndEngine 并让测试地图正确加载地图,但是当我尝试加载我创建的地图时,我使用地图加载的相同纹理创建了地图,但随后出现 AndroidRuntime 错误

在 test.test.test.Game$2.onUpdate(Game.Java:254) 指向我的游戏类

有人知道是什么原因造成的吗?

这是加载的第二张地图 角色生成的第一张地图加载正常,然后当我踩到退出字段时,我尝试加载此地图,加载后我的模拟器显示地图,然后因前面所述的错误而崩溃

0 投票
1 回答
716 浏览

cocos2d-iphone - 我可以在两个 CCTMXLayer 之间分层 CCSprite 吗?

我正在制作一个自上而下的射击游戏,它广泛使用使用“平铺”应用程序创建的 TMX 地图。在我的 TMX 地图中,我有一个带有地砖的“背景”图层,它出现在我的角色下方(CCSprites。)

我在 TMX 文件中有另一层称为“前景”,我希望它出现在我的 CCSprites 的“上方”,给人一种它们在各种物体下方行走的错觉。

我尝试使用 CCNode 类的 vertexZ 属性来执行此操作:

...但事实证明 vertexZ 实际上改变了节点在 openGL 视图中的视觉外观。当 CCNode 具有较高的 vertexZ 值时,它有效地使 CCNode 看起来更大或更靠近用户。我不想要那个——我想要的只是一种不可能的薄蛋糕层的效果,层之间没有任何视觉差异。

所以我想我会尝试改变节点的 zOrder 属性,如下所示:

但是我意识到我在这里所做的事情存在一个根本问题,因为我的 spriteNode 是 CCScene 的直接子节点,但背景和前景节点都是我的 CCTMXTiledMap 的子节点,而 CCTMXTiledMap本身就是 CCScene 的子节点。

所以我基本上是想在地图的两层之间插入一个 CCSprite,从CCScene 的角度来看,这实际上只是同一层的两个部分。

看来我可以创建一个额外的 CCTMXTiledMap 实例来保存前景层,但这似乎也有点矫枉过正。我的另一个想法是创建 CCSprite 来实现相同的目的,但似乎必须有更好的方法。

0 投票
1 回答
2530 浏览

xslt - 使用外部 XML 文档本地化 XSLT 输出

我有一个 XSLT 样式表,可将 XML 数据转换为 XSL-FO(然后使用 Apache FOP 将其呈现为 PDF)。

现在,我需要将输出本地化为几种不同的语言。例如,XSLT 生成的表的列标题需要本地化。下面是 XSLT 的简化片段,它生成了一个带有列标题"Date""Name""Something"的表头:

我们已经在系统的其他部分使用TMX文件进行国际化,所以这似乎是一种很自然的方式。这是一个 TMX 文件的简化示例,其中包含两种语言的几个字符串:

所以基本上我想用对 TMX 文件中的字符串的引用(使用tuid属性)替换 XSLT 中的硬编码列标题,以便相同的 XSLT 可以产生不同语言的输出。

但我似乎找不到任何关于如何将 TMX 文件与 XSLT 一起使用的资源。一些好的教程的例子或指针将不胜感激。

0 投票
2 回答
1377 浏览

iphone - 运行视网膜时,TMX 地图无法正确读取对象位置?

目前正在开发一款游戏,并将其转换为视网膜。我正在使用 cocos2d 和 Tiled。我遵循了他们网站上的指南:Retina Display in cocos2d,但对象的位置有问题。

我现在在做什么:

此 sd TMX 贴图运行良好,但在 Retina 中运行时,对象未正确定位。

如果我记录它给我的位置:

对我可能做错的想法表示赞赏

0 投票
2 回答
1728 浏览

android - cocos2d-android (github 版) 如何在移动背景层的同时保持“玩家”精灵在屏幕中央?

我正在学习cocos2d-android。我一直在关注将 Ray Wenderlich 的一些 iOS 教程移植到 Android 的教程。我已经完成了第一个教程,并希望通过自己将下一个 Ray Wenderlich 教程转换为 Android 作为学习练习来继续。

原始 iOS 教程可以在这里找到 http://www raywenderlich com/1163/how-to-make-a-tile-based-game-with-cocos2d

我已将应用程序转换为 android,但在其行为方式上遇到了一些问题。

我的代码在这里:

公共类 GameLayer 扩展 CCLayer{

}

我首先获取我的显示尺寸并从我的 TMX 文件创建我的平铺地图。我得到我的背景层并将其添加为一个孩子。然后我抓住我的对象层并将我的生成点对象拉出地图(我用 100、100 覆盖这个生成点以进行测试)。我抓住我的玩家精灵并将我的玩家位置设置为 100, 100 坐标。然后我将播放器添加为孩子。

接下来我调用 setViewPointCentered 以根据我的玩家位置将我的地图移动到适当的位置。这部分工作得很好,我的地图被放置在我的屏幕左下角(0,0)的左下角(0,0),我的角色在屏幕中心稍微向左和向下的100,100处.

当我开始向上或向右移动时,就会出现问题。一旦我通过屏幕的中心,我希望玩家精灵保持在屏幕的中心,而背景在我继续移动时向相反的方向移动。然而,玩家和背景都会移动,所以最终我的玩家会来到屏幕的右侧或顶部边缘,即使剩下很多地图,我也无法再向上或向右移动。

注意地图左上角的玩家。

玩家到达屏幕顶部但未按预期保持居中

注意地图右下角的玩家。

玩家到达屏幕右侧但未按预期居中

“public boolean ccTouchesEnded(MotionEvent event)”方法和“public void setViewPointCentered(CGPoint pos)”方法处理播放器和视图定位,但我认为它们不能正常工作。

我的一个朋友做 iOS 编程并在他的 iPhone 上创建了应用程序,它按预期工作,所以我想知道 cocos2d 的 android 端口中是否存在错误。

有没有人知道为什么当我到达中间并继续在地图上向右或向上移动时角色不会保持在屏幕中央?

感谢您提供的任何意见。两天来,我一直在用头撞桌子,试图弄清楚这一点。