mercredi 27 mai 2015
Spielsteine zeichnen und entfernen
Posted on 14:29 by verona
Hallo zusammen.
Ich habe ein Programm welches nacheinander eine bestimmte Anzahl an Spielsteinen zeichnet. Mit einem eigenen Thread werden die Spielsteine mit ihren Attributen (Position x, y, breite, ...) in eine Vector Liste gepackt. Jedes mal wenn ein Spielstein in die Liste gepackt wurde, wird das Frame mit repaint(); neu gezeichnet und danach ist 700ms Pause. So werden halt alle Spielsteine nacheinander aufgezeichnet. Jeder Spielstein hat 4 verschiedene Farben. Jetzt möchte ich prüfen, ob zwei nebeneinander liegende Steine an den Seiten die gleiche Farbe haben. Wenn nicht, soll der Stein wieder entfernt werden. Dafür lösche ich den Spielstein wieder aus der Liste und benutze wieder repaint();. Hier erstmal mein Code:
Das mit dem entfernen aus der Liste klappt aber jetzt anscheinend nicht. Ich habe ja zusätzlich noch eine Ausgabe in der Konsole und das funktioniert auch, also er kommt auf jeden Fall in die if Anweisung rein. Aber der Spielstein wird nicht entfernt. Er macht einfach weiter mit den nächsten Steinen. Hat jemand eine Idee woran das liegen könnte? Falls noch mehr Code von mir benötigt wird, sagt es einfach, aber ich denke das wichtige hab ich drin.
Viele Grüße
Ich habe ein Programm welches nacheinander eine bestimmte Anzahl an Spielsteinen zeichnet. Mit einem eigenen Thread werden die Spielsteine mit ihren Attributen (Position x, y, breite, ...) in eine Vector Liste gepackt. Jedes mal wenn ein Spielstein in die Liste gepackt wurde, wird das Frame mit repaint(); neu gezeichnet und danach ist 700ms Pause. So werden halt alle Spielsteine nacheinander aufgezeichnet. Jeder Spielstein hat 4 verschiedene Farben. Jetzt möchte ich prüfen, ob zwei nebeneinander liegende Steine an den Seiten die gleiche Farbe haben. Wenn nicht, soll der Stein wieder entfernt werden. Dafür lösche ich den Spielstein wieder aus der Liste und benutze wieder repaint();. Hier erstmal mein Code:
Java Code:
-
-
private static final long serialVersionUID = 1L;
-
private Vector<Spielstein> spielsteine = new Vector<Spielstein>();
-
private Vector<Spielstein> spielfeld = new Vector<Spielstein>();
-
-
-
public AppFrame2() {
-
super();
-
setDefaultCloseOperation(EXIT_ON_CLOSE);
-
MultiThread t1 = new MultiThread();
-
ladeSpielsteine();
-
t1.start();
-
}
-
-
for(Spielstein each: spielfeld){
-
zeichneSpielstein(g, each);
-
}
-
}
-
-
// Spielstein wird gezeichnet
-
}
-
-
public void ladeSpielsteine(){
-
// Spielsteine werden in die Variable "spielsteine" geladen
-
}
-
-
public void run(){
-
// Spielfeld füllen
-
int durchgang = 1;
-
for(int i = 0; i < spielsteine.size(); i++){
-
spielfeld.add(spielsteine.get(i));
-
repaint();
-
sleeep(700);
-
if(durchgang > 1){
-
if(spielsteine.get(i).getLinks() != spielfeld.get(spielfeld.size()-2).getRechts()){
-
spielfeld.remove(spielfeld.size()-1);
-
repaint();
-
sleeep(700);
-
}
-
}
-
durchgang++;
-
}
-
}
-
-
public void sleeep(int dauer){
-
try {
-
// TODO Auto-generated catch block
-
e.printStackTrace();
-
}
-
}
-
}
-
}
Das mit dem entfernen aus der Liste klappt aber jetzt anscheinend nicht. Ich habe ja zusätzlich noch eine Ausgabe in der Konsole und das funktioniert auch, also er kommt auf jeden Fall in die if Anweisung rein. Aber der Spielstein wird nicht entfernt. Er macht einfach weiter mit den nächsten Steinen. Hat jemand eine Idee woran das liegen könnte? Falls noch mehr Code von mir benötigt wird, sagt es einfach, aber ich denke das wichtige hab ich drin.
Viele Grüße
Spielsteine zeichnen und entfernen
Categories: Spielsteine zeichnen und entfernen
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire