Pregunta

Estoy usando el editor de mapas de azulejos para hacer mapas 2D para hacer un juego con Pyglet.Los azulejos están numerados y guardados en un archivo .tmx.Los números de los azulejos comienzan en 1 y se mantienen ascendiendo, pero cuando flipa un azulejo que el número de azulejos se cambia con bitwise, por lo que cuando analiza los datos, sabe cómo voltearlo.El documento explica cómo romperlo [aquí] ( https:// github.com / BJORN / TILED / WIKI / TMX-MAP-Format # Data ) debajo de la mosaico.No tengo idea de dónde empiezo, nunca he usado bitwise.Levanté la vista a los python y leí sobre & |<< >> OPERADORES BIT BITWISE y jugó con ellos en el intérprete, pero todavía no entiendo cómo desglosar los números de las tejas para obtener los datos.Uno de los números que tengo es 2684354578 ¿Alguien puede mostrarme cómo hacer esto?

¿Fue útil?

Solución

Los números son de 32 bits de ancho.Los 3 bits superiores del número 31, 30 y 29 Identidad de la información de vuelo.

Puede forzar estos 3 bits a cero por expresión

result = number & 0x1FFFFFFF

El prefijo 0x significa que es un número hexagonal.Cada dígito representa 4 bits usando los valores 0 a 9 y a hasta F. El número es, por lo tanto, 3 ceros seguido de 29.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top