Guten Abend,
wir programmieren nun schon ein paar Wochen an diesem Spiel. Es handelt sich um Outbreak. Man besitzt einen Schläger den man auf einer x-achse hin und her bewegen kann und somit versucht einen Ball gegen Steine zu schießen.
Die Steine verschwinden und geben Punkte.
Im Moment klappt auch alles, bis auf die Wiedergabe der gemachten Punkte und die richtige Kollision(?) bzw wir glauben es liegt an der Kollision.
Immer wenn der Ball Höher als eine Steinreihe kommt, verschwindet sie komplett. Jedoch, wenn er normal einen Stein trifft, funktioniert alles perfekt und nur der einzelne Stein verschwindet.
Hier ist der Code-Schnipsel für die Kollision, vielleicht findet ihr ja was, ich sitze seit 4 Stunden dran :[
Falls ihr noch weitere Dinge braucht, sagt bescheid.
Die ganze Methode befindet sich in der Klasse -> Ball.java :]
wir programmieren nun schon ein paar Wochen an diesem Spiel. Es handelt sich um Outbreak. Man besitzt einen Schläger den man auf einer x-achse hin und her bewegen kann und somit versucht einen Ball gegen Steine zu schießen.
Die Steine verschwinden und geben Punkte.
Im Moment klappt auch alles, bis auf die Wiedergabe der gemachten Punkte und die richtige Kollision(?) bzw wir glauben es liegt an der Kollision.
Immer wenn der Ball Höher als eine Steinreihe kommt, verschwindet sie komplett. Jedoch, wenn er normal einen Stein trifft, funktioniert alles perfekt und nur der einzelne Stein verschwindet.
Hier ist der Code-Schnipsel für die Kollision, vielleicht findet ihr ja was, ich sitze seit 4 Stunden dran :[
Falls ihr noch weitere Dinge braucht, sagt bescheid.
Code:
public void kollision() {
for (int i = baustein.size()-1; i >= 0; i--) {
// Kollision von oben
if ( baustein.get(i).getPosition().getY() >= position.y
+ BALLSIZE / 2 && baustein.get(i).getPosition().getX() <= position.x
&& position.x <= baustein.get(i).getPosition().getX()
+ baustein.get(i).getSW()) {
kollidiert = true;
dy = -dy;
}
// Kollision von unten
else if (baustein.get(i).getPosition().getY() + baustein.get(i).getSH() >= position.y
- BALLSIZE / 2
&& baustein.get(i).getPosition().getX() <= position.x
&& position.x <= baustein.get(i).getPosition().getX()
+ baustein.get(i).getSW()) {
kollidiert = true;
dy = -dy;
}
// Kollision von links
else if (baustein.get(i).getPosition().getX() <= position.x
+ BALLSIZE / 2 && baustein.get(i).getPosition().getY() <= position.y
&& position.y <= baustein.get(i).getPosition().getY()
+ baustein.get(i).getSH()) {
kollidiert = true;
dx = -dx;
}
// Kollision von rechts
else if (baustein.get(i).getPosition().getX()
+ baustein.get(i).getSW() > position.x
- BALLSIZE / 2 && baustein.get(i).getPosition().getY() <= position.y
&& position.y <= baustein.get(i).getPosition().getY()
+ baustein.get(i).getSH()) {
kollidiert = true;
dx = -dx;
}
if(kollidiert == true){
baustein.remove(i);
punkte = gp.getScore() + 100;
gp.setScore(punkte);
System.out.println("Score: "+ gp.getScore());
kollidiert = false;
}
}
}
Die ganze Methode befindet sich in der Klasse -> Ball.java :]