Domanda

Sto usando Map Editor piastrellato per creare mappe 2D per fare una partita con Pyglet.Le piastrelle sono numerate e salvate in un file .tmx.I numeri delle piastrelle iniziano a 1 e continua a salire, ma quando si capovolge una tessera che il numero di piastrelle viene modificato con bitwise, quindi quando analizzi i dati che sai come capovolgerlo.Il documento spiega come abbatterlo [qui] ( https:// github.com / bjorn / bjorn / piastrellato / wiki / tmx-map-format # Dati ) sotto piastrelle lanciando.Non ho idea di dove iniziare, non ho mai usato bitwise.Ho cercato bitwise per Python e leggi di & |<< >> Operatori bitwisole e giocati con loro nell'interprete ma non capisco ancora come abbattere i numeri delle piastrelle per ottenere i dati.Uno dei numeri che ho è 2684354578 può qualcuno mostrarmi come fare questo?

È stato utile?

Soluzione

I numeri sono larghi 32 bit.I 3 bit superiori Numero 31, 30 e 29 Identità Le informazioni di lancio.

Puoi forzare questi 3 bit a zero per espressione

result = number & 0x1FFFFFFF
.

Il prefisso 0x significa che è un numero esagonale.Ogni cifra rappresenta 4 bit utilizzando i valori 0 fino a 9 e A fino a F. Il numero è quindi 3 zeri seguiti da 29.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top