# Spiel nach Abfrage beenden oder neustarten



## Alex2013 (13. Nov 2016)

Hallo Leute,

ich habe eine kurze Frage. Das spiel an sich ist fertig und funktioniert auch. Ich wollte jetzt allerdings noch eine Abfrage einbauen, welche mich fragt, ob ich das Spiel wirklich beenden oder neustarten möchte.
Wie kann ich das am besten umsetzen, so dass das Spiel auch wirklich von Anfang an neustartet oder sich eben schließt?

Nur für das Beenden ist die Abfrage relativ einfach (siehe Code). Ich habe bereits einige Varianten versucht. Hierbei bleibt die Anwendung jedoch hängen oder startet neu und bleibt dann hängen... :-(

Hier der Code welcher das Event auslösen soll:


```
@Override
    public void actionPerformed(ActionEvent e) {
        do{
        //Festlegen der Geschwindigkeit in x und y richtung
        ballX=ballX+ballXSpeed*2;
        ballY=ballY+ballYSpeed*2;
        repaint();
        //wenn die position des balls an den rechten bildschirmrand schlägt springt er zurück
        if(ballX>=(1170))
        {
            ballXSpeed=-7;
        }
        //wenn die position des ba
        if(ballX<=0)
        {
            ballXSpeed=+7;
        }
        //Der 3 Fall wurde verändert, damit der ball vom schläger und nicht mitten im Bildschirm abprallt
        if(ballX>=schlaegerX&&ballX<=schlaegerX+150&&ballY>=(getHeight()-50))
        {
            ballYSpeed=-5;
        }
        if(ballY<=0)
        {
            ballYSpeed=+5;
        }
       
        //Wenn der ball ins aus geht wird das Spiel beendet
        if(ballY>=(getHeight()-50)+15)
        {
            String text=sc.next();
            JOptionPane.showInputDialog("Game over! Spiel beenden?");
        }
        }while(sc.next().equalsIgnoreCase(text));
       
//            JOptionPane.showMessageDialog(null, "Game over! oder Neustart?");
//            JOptionPane.showInputDialog("Neustart: ");
//            if(text.equals(sc.next()))
//            {
//                new Pingpong();
//            }
//            else
//            {
//                System.exit(0);
//            }   
       
       
    }
```

Für Tipps oder Lösungen wäre ich dankbar


----------



## Robat (17. Nov 2016)

Alex2013 hat gesagt.:


> _//Wenn der ball ins aus geht wird das Spiel beendet_
> *if*(ballY>=(getHeight()-50)+15)
> {
> String text=sc.next();
> ...



ich würde hier mit *break; *arbeiten und die Abfrage in eine neue / eigene Methode auslagern.
Deinen JOptionPane würde ich in einen JDialog umändern, mit 2 Buttons - "Beenden" "Neustart".. wenn du dann auf die Buttons einen Listener setzt dann kannst auf Druck von "Neustart" eine neue Instanze von Pingpong erstellen und wenn auch "Beenden" gedrückt wird dann rufst du System.exit(0) auf.


----------

