0

我正在使用平铺地图编辑器制作 2d 地图,以便使用 pyglet 制作游戏。瓷砖被编号并保存到 .tmx 文件中。瓷砖编号从 1 开始并保持递增,但是当您翻转瓷砖时,瓷砖编号会按位更改,因此当您解析数据时,您知道如何翻转它。该文档解释了如何在瓷砖翻转下将其分解 [此处] ( https://github.com/bjorn/tiled/wiki/TMX-Map-Format#data )。我什至不知道从哪里开始,我从来没有按位使用过。我按位查找 python 并阅读了 & | << >> 位运算符并在解释器中使用它们,但我仍然不明白如何分解图块编号以获取数据。我的号码之一是 2684354578 有人可以告诉我怎么做吗?

4

1 回答 1

0

这些数字是 32 位宽的。高 3 位数字 31、30 和 29 标识翻转信息。

您可以通过表达式强制这 3 位为零

result = number & 0x1FFFFFFF

前缀 0x 表示它是一个十六进制数。每个数字使用值 0 到 9 和 A 到 F 表示 4 位。因此,该数字是 3 个零,后跟 29 个 1。

于 2014-01-09T21:57:20.060 回答