# Pong -Reruns möglich machen



## RunOrVeith (10. Jun 2011)

Hey,
Ich habe eine Pong version im Internet gefunden, und sie angepasst, bin abe rnoch nicht fertig.
Ich habe das Problem, dass ich aus Eclipse heraus immer wieder das Package "runnen" muss, damit ich nochmal spielen kann,
und außerdem, dass ich will, dass man mit der Maus klickt, und dann geht es erst los.

Ich habe dafür ein Boolean "anfang" gemacht, der false ist, und der true werden soll, wenn ich klicke.


```
public void mouseClicked(MouseEvent e)
{
    	//Anfang
	anfang =true;

}
```



```
public void run() 
	{
		boolean linksrechts=false;
		boolean hochtief=false;
        // Verzögerung Spielanfang
		if (anfang == true)
		{
		while(true){
			
			if(spiel){
			
            // Der Ball geht von Links nach Rechts
           	if (linksrechts) 
			{
				// rechts
				BallX += rechts;
				if (BallX >= (breite - 8))
                    linksrechts= false;
			}
			else
			{
				// links
				BallX += links;
				if ( BallX <= 0)
                    linksrechts =  true;
			}
           	
           	
            // Der Ball geht von Oben nach Unten
           	if (hochtief) 
			{
				//  hoch
				BallY += hoch;
				if (BallY >= (hoehe - 8))
                    hochtief= false;
					
			}
			else
			{
				//  runter
				BallY += runter;
				if ( BallY <= 0)
					hochtief =  true;
			}
           	zeichneBall(BallX, BallY);
           	
            // Zeitverzögerung
			try 
			{
				Thread.sleep(50);
			}
			catch(InterruptedException ex)
			{
				
			}
			
			// Führt die Bewegung von Spieler 1 aus
			moverPlayer1();
			
            // Führt die Bewegung von Spieler 2 aus
			moverPlayer2();
			
            // Score +1 Player 1
			if (BallX >= (this.getWidth() - 8))
				scoreplayer1++;
                			
            // Score +1 Player 2
			if ( BallX == 0)
				scoreplayer2++;
                            			
			// Ende des Spiels,                        
			if(scoreplayer1== spielende || scoreplayer2== spielende){
				spiel=false;
			    gameOver=true;
			}
			
			// Ball trifft auf Spieler 1
			if(BallX<=spieler1X+10 && BallY>=spieler1Y && BallY<=(spieler1Y+50))
				
				linksrechts=true;
			
			
            // Ball trifft auf Spieler 2
			if(BallX>=(spieler2X-20) && BallY>=spieler2Y && BallY<=(spieler2Y+50))
			
				linksrechts=false;
			
			}
		}
		}
	}
```

jetzt habe ich aber das Problem, dass das spiel einfach nicht anfängt, auch wenn ich klicke...
wie löse ich das? Es muss irgendwas in der Maus Methode sein, schätze ich, denn wenn ich den Boolean anfang gleich auf true setze, dann fängts halt gleich an...
aber so fängt der ball nicht an sich zu bewegen!!

Vielen Dank


----------



## Bert Brenner (10. Jun 2011)

Ist doch klar, wenn Anfang nicht auf true gesetzt ist, dann überspringst du den ganzen Inhalt deiner run Methode.

Du musst entweder warten bis anfang true ist, oder deine run Methode erst ausführen wenn dein MouseEvent ausgelöst wird.


----------



## tagedieb (11. Jun 2011)

Am besten du laesst den boolen 'anfang' ganz weg und startest stattdessen den Game-Thread wenn du die Mouse klickst.


----------

