92 lines
2.2 KiB
Java

import processing.core.PApplet;
import java.awt.Point;
import java.util.ArrayList;
import java.util.List;
public class GameLoop {
int activePlayer = 0;
Tracker tracker;
GraphicsProgram graphics;
GameLogic gl;
Player player1;
Player player2;
public GameLoop(){
player1 = new Player(0, "192.168.1.1", 9000);
player2 = new Player(1, "192.168.1.2", 9000);
tracker = new Tracker();
// Starte Tracker in einem separaten Thread
Thread trackerThread = new Thread(tracker::run);
trackerThread.start();
graphics = new GraphicsProgram(player1, player2);
String[] args = {"GraphicsProgram"};
PApplet.runSketch(args, graphics);
gl = new GameLogic();
String[] args_ = {"GameLogic"};
PApplet.runSketch(args_, gl);
try {
Thread.sleep(5000);
}catch (Exception e){
}
run();
}
private void run(){
while(true){
//communicate();
Point p1 = tracker.getP1();
//System.out.println("Player 1 is at " + p1.x + " and " + p1.y);
Point p2 = tracker.getP2();
//System.out.println("Player 2 is at " + p2.x + " and " + p2.y);
player1.setKoords(p1.x, p1.y);
player2.setKoords(p2.x, p2.y);
if(gl.doCheckExtern(player2.getTrail(), p1)){ //Check Position von P1 mit Spur von P2
System.out.println("Spieler 1 hat verloren");
break;
}
if(gl.doCheckExtern(player1.getTrail(), p2)){ //Check Position von P2 mit Spur von P1
System.out.println("Spieler 2 hat verloren");
break;
}
draw();
}
}
private void communicate() {
//offen für Auto Kommunikation
}
/*private List<Point> track(){
Point p1 = tracker.getP1();
Point p2 = tracker.getP2();
System.out.println(p1.x);
player1.setKoords(p1.x, p1.y);
player2.setKoords(p2.x, p2.y);
List<Point> output = new ArrayList<>();
output.add(0, p1);
output.add(1, p2);
return output;
}*/
private void draw(){
}
}