Android Bluetooth Game, необходимая перенести Int [] по потоку байта
-
27-10-2019 - |
Вопрос
Вот ситуация: я делаю многопользовательскую версию Pong для Android. Когда мое весло соединяется с мячом, я хочу отправить другому игроку о влиянии мяча (как x, y координата), чтобы экран другого игрока мог обновить, чтобы показать, откуда идет мяч, а также положение моего весла. Другое устройство рассчитает траекторию мяча и в конечном итоге повторит этот процесс. По сути, что я хочу, это то, что выглядит так ...
static final int RESPONSE_CODE = (some #);
int[] return_data = {RESPONSE_CODE, myPaddle.x, myPaddle.y, ballImpactPosition.x, ballImpactPosition.y};
blueToothConnection.write(return_data);
Проблема здесь в том, что bluetoothConnection.write()
полагается на java.io.outputstream и поэтому поддерживает только написание байта [].
Итак, есть ли способ преобразовать мой int [] в байт [] (и обратно позже)? Если это поможет, мой int [] всегда будет содержать ровно 5 Int, все это всегда позитивно. Я не уверен, каковы максимальные значения моих INT, потому что это зависит от размера экрана устройства.
Решение
В этом случае Bytebuffer - ваш друг: