diff --git a/src/main/java/ArduinoCommunicator.java b/src/main/java/ArduinoCommunication.java similarity index 80% rename from src/main/java/ArduinoCommunicator.java rename to src/main/java/ArduinoCommunication.java index 96dbefe..56c808e 100644 --- a/src/main/java/ArduinoCommunicator.java +++ b/src/main/java/ArduinoCommunication.java @@ -4,12 +4,12 @@ import com.illposed.osc.transport.OSCPortOut; import java.net.InetAddress; import java.util.Arrays; -public class ArduinoCommunicator { +public class ArduinoCommunication { private InetAddress address; private int port; private OSCPortOut oscPortOut; - public ArduinoCommunicator(String ipAdress, int portNr) { + public ArduinoCommunication(String ipAdress, int portNr) { try{ address = InetAddress.getByName(ipAdress); port = portNr; @@ -20,10 +20,9 @@ public class ArduinoCommunicator { } } - public void sendMessage(double speed, double steer, boolean light){ + public void sendMessage(int a, double x, double y){ String oscAddress = "/arduino/command"; // OSC-Adresse für die Nachricht - OSCMessage message = new OSCMessage(oscAddress, Arrays.asList(speed, steer, light)); - + OSCMessage message = new OSCMessage(oscAddress, Arrays.asList(a, x, y)); try { oscPortOut.send(message); } diff --git a/src/main/java/GameLoop.java b/src/main/java/GameLoop.java index 593beeb..6abcda3 100644 --- a/src/main/java/GameLoop.java +++ b/src/main/java/GameLoop.java @@ -1,4 +1,53 @@ public class GameLoop { + int activePlayer = 0; + Player player1; + Player player2; + boolean wasSmthTracked = false; + + public GameLoop(){ + player1 = new Player(0, "ip", 9000); + player2 = new Player(1, "ip", 9000); + run(); + } + + private void run(){ + while(true){ + communicate(); + if(!wasSmthTracked) { + track(); + } + draw(); + } + } + + private void communicate() { + if(wasSmthTracked){ + //Beide sollen ausgehen + player1.sendToCar(0, 0.0, 0.0); + player2.sendToCar(0, 0.0, 0.0); + activePlayer++; + } else { + //Schicke die Nachrichten fürs angehen + activePlayer = activePlayer%2; + if (activePlayer == 0){ + player1.sendToCar(1, 0.0, 0.0); + player2.sendToCar(0, 0.0, 0.0); + } + else { + player1.sendToCar(0, 0.0, 0.0); + player2.sendToCar(1, 0.0, 0.0); + } + } + } + + private void track(){ + //suche Lampe + //Wenn geklappt, setze wasSmthTracked auf true + } + + private void draw(){ + //Schicke für active Player letzte Koordinaten + } } diff --git a/src/main/java/Player.java b/src/main/java/Player.java index 94d4df1..9b822d7 100644 --- a/src/main/java/Player.java +++ b/src/main/java/Player.java @@ -8,7 +8,7 @@ public class Player { private int y; Queue trail = new LinkedList<>(); - ArduinoCommunicator arduinoCommunicator; + ArduinoCommunication arduinoCommunicator; @@ -17,7 +17,7 @@ public class Player { // Konstruktor public Player(int id, String finalIpAddress, int finalPortNr) { this.ID = id; - arduinoCommunicator = new ArduinoCommunicator(finalIpAddress, finalPortNr); + arduinoCommunicator = new ArduinoCommunication(finalIpAddress, finalPortNr); } @@ -42,8 +42,8 @@ public class Player { return trail; } - public void sendToCar(double speed, double steer, boolean light){ - arduinoCommunicator.sendMessage(speed, steer, light); + public void sendToCar(int light, double steer, double speed){ + arduinoCommunicator.sendMessage(light, steer, speed); }