Frage

Hier ist die Situation: Ich mache eine Mehrspieler -Version von Pong für Android. Wenn sich mein Paddel mit dem Ball verbindet, möchte ich dem anderen Spieler den Einfluss des Balls (als X, Y -Koordinate) senden, damit der Bildschirm des anderen Spielers aktualisieren kann, um anzuzeigen, woher der Ball stammt, ebenso wie der Position meines Paddels. Das andere Gerät berechnet die Flugbahn des Balls und wiederholt diesen Vorgang schließlich. Im Wesentlichen will ich etwas, das so aussieht ...

static final int RESPONSE_CODE = (some #);

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

blueToothConnection.write(return_data);

Das Problem hier ist das bluetoothConnection.write() stützt sich auf java.io.outputStream und unterstützt daher nur das Schreiben eines Byte [].

Gibt es also eine Möglichkeit, mein int [] in ein Byte [] (und später wieder zurück) umzuwandeln? Wenn es hilft, enthält mein int [] immer genau 5 INTs, alle immer positiv. Ich bin mir nicht sicher, welche maximalen Werte meiner INTs von der Bildschirmgröße des Geräts abhängt.

War es hilfreich?

Lösung

In diesem Fall ist der Bytebuffer Ihr Freund:

Android -API -Link für Byebuffer

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top