Pregunta

Aquí está la situación: estoy haciendo una versión multijugador de Pong para Android. Cuando mi paleta se conecta con la pelota, quiero enviar al otro jugador el punto de impacto de la pelota (como una coordenada X, Y) para que la pantalla del otro jugador pueda actualizarse para mostrar de dónde viene la pelota, así como la posición de mi paleta. El otro dispositivo calculará la trayectoria de la pelota y eventualmente repetirá este proceso. Esencialmente lo que quiero es algo que se vea así,

static final int RESPONSE_CODE = (some #);

int[] return_data = {RESPONSE_CODE, myPaddle.x, myPaddle.y, ballImpactPosition.x, ballImpactPosition.y};

blueToothConnection.write(return_data);

El problema aquí es que bluetoothConnection.write() confía en java.io.outputstream y, por lo tanto, solo admite escribir un byte [].

Entonces, ¿hay alguna forma de convertir mi int [] en un byte [] (y volver más tarde)? Si ayuda, mi int [] siempre contendrá exactamente 5 INTS, todos siempre positivos. No estoy seguro de cuáles son los valores máximos de mis INTS porque eso depende del tamaño de la pantalla del dispositivo.

¿Fue útil?

Solución

En este caso, el bytebuffer es tu amigo:

Enlace API de Android para Byebuffer

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