Android-игра Bluetooth, необходимо передавать Int[] через поток байтов
Вот ситуация: я делаю многопользовательскую версию понга для 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 дюймов, все всегда положительные. Я не уверен, каковы максимальные значения моих целых, потому что это зависит от размера экрана устройства.
1 ответ
В этом случае ByteBuffer ваш друг: