Question

J'utilise l'éditeur de cartes carrelés pour créer des cartes 2D pour créer une partie avec Pyglet.Les tuiles sont numérotées et enregistrées dans un fichier .tmx.Les numéros de carreaux commencent à 1 et continuent de monter, mais lorsque vous retournez une tuile que le numéro de tuile est modifié avec des bits supplémentaires, alors lorsque vous analysez les données, vous savez comment le basculer.Le document explique comment le casser [ici] ( https:// github.COM / BJORN / carrelé / wiki / TMX-MAP-Format # Données ) Sous Tile Fliping.Je ne sais pas où commencer, je n'ai jamais utilisé Bitwise.J'ai regardé des yeux bitwise pour Python et lisez à propos de & |<< >> Opérateurs Bitwise et joué avec eux dans l'interprète, mais je ne comprends toujours pas comment décomposer les numéros de tuile pour obtenir les données.Un des chiffres que j'ai est 2684354578 Quelqu'un peut-il me montrer comment faire cela?

Était-ce utile?

La solution

Les chiffres sont de 32 bits de large.Les 3 bits supérieurs Numéro 31, 30 et 29 identités Les informations de retournement.

Vous pouvez forcer ces 3 bits à zéro par expression

result = number & 0x1FFFFFFF

Le préfixe 0x signifie qu'il s'agit d'un numéro hexagonal.Chaque chiffre représente 4 bits en utilisant les valeurs 0 à 9 à 9 et a jusqu'à F. Le nombre est donc de 3 zéros suivi de 29.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top