Hallo, ich habe hier ein Programm, welches 2 Autos malt.
Die Autos laufen in 2 verschiedenen Threads. Man kann jetzt jedes Auto schneller, bzw langsamer fahren lassen.
Jetzt möchte ich eine Kollosionsabfrage programmieren. Aber leider haben Threads ja keine Rückgabewerte.
Hier erstmal das programm:
Bei zeichnedich() möchte ich die X-Werte jeweils in ein Array schreiben, was ja auch kein Problem ist, nur müsste ich die X werte der unterschiedlichen Threads erstmal bekommen um sie dann auf einer ebene vergleichen zu können.
Ich hoffe das Problem ist verständlich.
Irgendwie habe ich mit Java riesige Probleme...ich hab mit 7Jahren mit turbopascal angefangen, dann delphi, dann c++ mit openGL, PHP, aber mit JAVA tue ich mich aus irgendeinem Grund unendlich schwer.
Diese ganzen Zusammenhänge der einzelnen Klassen nerven mich einfach nur
. Aber ich will jetzt hier auch keine Kritik an JAva üben ... das wäre glaub ich sehr sehr schlecht für mich 
Ich bin für jede Hilfe, auch wenn es nur ein "Such doch mal bei google nach..." ist, dankbar...
Grüße Max
Die Autos laufen in 2 verschiedenen Threads. Man kann jetzt jedes Auto schneller, bzw langsamer fahren lassen.
Jetzt möchte ich eine Kollosionsabfrage programmieren. Aber leider haben Threads ja keine Rückgabewerte.
Hier erstmal das programm:
Code:
import java.applet.*; import java.awt.*; import java.awt.event.*;
public class AutoThread4 extends Applet implements ActionListener {
//array für X von Auto 1
int auto1[] = new int[100];
//array für X von Auto 2
int auto2[] = new int[100];
//int i =zähler
int i;
Button Knopf1, Knopf2, Knopf3, Knopf4, Knopf5;
Auto a, b; Graphics Stift;
public void init() {
Knopf1=new Button("Los!"); add(Knopf1);
Knopf1.addActionListener(this);
Knopf2=new Button("A Halt!"); add(Knopf2);
Knopf2.addActionListener(this);
Knopf3=new Button("B Halt!"); add(Knopf3);
Knopf3.addActionListener(this);
Knopf4=new Button("A Schneller!"); add(Knopf4);
Knopf4.addActionListener(this);
Knopf5=new Button("B Schneller!"); add(Knopf5);
Knopf5.addActionListener(this);
Stift=getGraphics();
a = new Auto(Stift,20,60);
b = new Auto(Stift,20,120);
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand()=="Los!") { a.start(); b.start(); }
if (e.getActionCommand()=="A Halt!") { a.anhalten(); }
if (e.getActionCommand()=="B Halt!") { b.anhalten(); }
if (e.getActionCommand()=="A Schneller!") { a.schneller(); }
if (e.getActionCommand()=="B Schneller!") { b.schneller(); }
}
}
class Auto extends Thread{
Graphics Stift; int x, y, v; boolean halt;
public Auto(Graphics g, int xa, int ya) {
Stift=g; x=xa; y=ya; v=1;
halt=false;
}
void zeichnedich(Color c) {
Stift.setColor(c);
Stift.fillRect(x, y, 60, 20);
koordinaten();
Stift.fillRect(x+10, y-10, 30, 10);
Stift.fillOval(x+10, y+15, 10, 10);
Stift.fillOval(x+40, y+15, 10, 10);
}
void zeitschleife() {
try {Thread.sleep(10);}
catch(InterruptedException e) {}
}
public void run() {
while(halt==false){
zeichnedich(Color.lightGray);
x=x+v;
zeichnedich(Color.red);
zeitschleife();
}
}
public void anhalten() {
halt = true;
}
public void schneller() {
v = v + 1;
}
public void koordinaten()
{
}
}
Bei zeichnedich() möchte ich die X-Werte jeweils in ein Array schreiben, was ja auch kein Problem ist, nur müsste ich die X werte der unterschiedlichen Threads erstmal bekommen um sie dann auf einer ebene vergleichen zu können.
Ich hoffe das Problem ist verständlich.
Irgendwie habe ich mit Java riesige Probleme...ich hab mit 7Jahren mit turbopascal angefangen, dann delphi, dann c++ mit openGL, PHP, aber mit JAVA tue ich mich aus irgendeinem Grund unendlich schwer.
Diese ganzen Zusammenhänge der einzelnen Klassen nerven mich einfach nur
Ich bin für jede Hilfe, auch wenn es nur ein "Such doch mal bei google nach..." ist, dankbar...
Grüße Max