# eine Pause in ein Programm einbauen?



## Lector (15. Mrz 2005)

hi
wie kann ich in mein Programm/Schleife eine Pause einbauen, wenn ich keinen Thread benutzen will??
thx


----------



## meez (15. Mrz 2005)

Mit Thread.sleep(<zeit in Millisekunden>)....


----------



## Lector (15. Mrz 2005)

... aber ich hab doch garkeinen thread!


----------



## meez (15. Mrz 2005)

Was meisnt du den, worin dein Hauptprogram läuft oder der GC usw. Das alles sind einzelne Threads.... (Jedes Prozess hat mindestens 1 Thread)...
Da also das Hauptprogram im Main-Thread läuft, kannst du ihn auch mit Thread.sleep(); anhalten...;-)


----------



## Lector (15. Mrz 2005)

aso... muss ich dann auch threah. schreiben oder meine klasse.sleep??


----------



## meez (15. Mrz 2005)

Höchstens this.sleep()...Aber die Methode ist statisch, also von überall : Thread.sleep();


----------



## Lector (15. Mrz 2005)

also das klappt zwar aber net so wie ich es will:
hatte frueher:

```
engine = new Thread();
...
run(){
  ...
  while( bewegung ){
    move();
  }
  ...
}
move{
  ...bewegung...
  engine.sleep( 150 );
}
```
jetzt hab ich aus der run ne funktion gemacht, das threadzeugs gelöscht und engine.sleep( 150 ); durch Thread.sleep( 150 ); ersetzt.
Jetzt springt die spielfigur jedoch nach einiger zeit einfach von der ersten auf die letzte position anstatt sich so wie frueher zu bewegen!!
was kann ich tun?


----------



## meez (15. Mrz 2005)

Machs wie früher, und ersetz engine.sleep() durch Thread.sleep()....


----------



## Lector (15. Mrz 2005)

also geht das ganze nicht ohne einen 2. thread? den eigentlich wollte ich diesen vermeiden


----------



## meez (15. Mrz 2005)

Was willst du eigentlich machen..? Poste doch mal ein wenig Code...


----------



## Lector (15. Mrz 2005)

also ich mach ein spiel, wo sich eine spielfigur über labels bewegt:
also das is so ca die alte run():


```
public void bewegen(int z){
  int spieler = playerTurn;
  int pos = player[spieler].pos;
  int posneu = pos+z;
  
  while( pos<posneu ){  	
    posneu = move(pos, spieler, posneu, true);
    pos = player[spieler].pos;
	try{
	  Thread.sleep( 150 );
	}catch(Exception e){}
  }
  
  pos = posneu;
  player[spieler].pos = pos;
 

 if( playerTurn == 1){
   playerTurn = 0;
 }else{
   playerTurn ++;
 }
}
```


```
public int move(int pos, int spieler, int posneu, boolean schleife){
    if( schleife ){
      player[spieler].pos++;
      pos++;
    }else{
       player[spieler].pos = posneu;
       pos = posneu;  	
    }

    if( pos>39 ){
     pos    = pos - 40;
     posneu = posneu - 40;
    }
	  
    try{
      file = new File( "images/s"+spieler+".jpg" ); 
      image = ImageIO.read( file ); 
    }catch( IOException ex ){}
    lay.straße[pos].setIcon( new ImageIcon(image) );
    player[spieler].pos = pos;
    
    return posneu;
  }
```
[/quote]


----------

