gioco bluetooth Android, necessità di trasferimento int [] attraverso il flusso di byte
-
27-10-2019 - |
Domanda
Ecco la situazione: sto facendo una versione multiplayer di pong per Android. Quando i miei collega pagaia con la palla, voglio inviare l'altro giocatore il punto di impatto della palla (come coordinate x, y) in modo che lo schermo del l'altro giocatore può aggiornare per mostrare dove la palla è venuta da così come la posizione del mio pagaia. L'altro dispositivo calcolerà la traiettoria della palla ed eventualmente ripetere questo processo. In sostanza quello che voglio è qualcosa che assomiglia a questo -
static final int RESPONSE_CODE = (some #);
int[] return_data = {RESPONSE_CODE, myPaddle.x, myPaddle.y, ballImpactPosition.x, ballImpactPosition.y};
blueToothConnection.write(return_data);
Il problema qui è che si basa su bluetoothConnection.write()
java.io.OutputStream e in modo che solo supporta la scrittura di un byte [].
Quindi, non v'è alcun modo per convertire il mio int [] in un byte [] (e viceversa in seguito)? Se aiuta, il mio int [] conterrà sempre esattamente 5 interi, tutti sempre positivi. Im non sicuro di quello che i valori massimi dei miei interi sono, perché questo dipende da dimensioni dello schermo del dispositivo.
Soluzione
In this case, the ByteBuffer is your friend: