2014-01-09 63 views
0

我正在使用平鋪的地圖編輯器製作用pyglet製作遊戲的2D地圖。瓷磚被編號並保存到.tmx文件。瓦片數字從1開始並保持上升,但是當你翻轉一個瓦片時,瓦片數字按位變化,所以當你解析數據時,你知道如何翻轉它。該文件解釋瞭如何在瓦片翻轉下將其分解[此處](https://github.com/bjorn/tiled/wiki/TMX-Map-Format#data)。我不知道從哪裏開始,我從來沒有用過按位。我查找了python的位圖,並閱讀了關於& | < < >>按位運算符並在解釋器中與他們一起玩,但我仍然不明白如何分解瓦片數以獲取數據。我有一個數字是2684354578有人可以告訴我如何做到這一點?按位數字python

回答

0

這些數字是32位寬。高3位數字31,30和29標識翻轉信息。

可以通過表達

result = number & 0x1FFFFFFF 

迫使這3位到零的前綴0X意味着它是一個十六進制數。每個數字代表4位,使用值0至9和A至F,因此數字爲3個零後接29個。