Android Bluetooth Game, необходимая перенести Int [] по потоку байта

StackOverflow https://stackoverflow.com/questions/8350918

Вопрос

Вот ситуация: я делаю многопользовательскую версию 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 - ваш друг:

Ссылка на Android API для Byebuffer

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top