G
Goldfish
Gast
Hallo Leute, ich versuche gerade verzewifelt eine Art Animation ohne Thread hinzubekommen, was sich allerdings als etwas schwierig erweist...
Also ich habe ein Spielbrett und will meine Figur jetzt vom System aus automatisch Züge ziehen lassen. Zwischen jedem Zug soll es einen kleinen Timeout geben, das Fenster aber neu gezeichnet werden, damit der Nutzer das ganze beobachten kann, was eigentlich passiert. Dummerweise ist mein Problem, dass ich es schon auf 2 Arten probiert habe, mir keine weiteren einfallen und die Animation so läuft, dass das Programm in der Tat kurz in den Schlafmodus wechselt, also wartet, dann aber nicht eine langsame Animation hinter sich bringt, sondern alles in einem Zug beendet... und das nervt XD
Wäre nett, wenn jemand einen Tipp für mich hat. Ich zeig die verantwortliche Funktion mal mit dazu:
[JAVA=42]
private void moveAutoForKill(GameStone markedStone){
if(possibleLocations.size() == 1){
GameRules.eraseBeatenStoneFromList( markedStone,
new Point( (int) possibleLocations.get(0).getX(),
(int) possibleLocations.get(0).getY() ),
stones.getBlackStones(),
stones.getWhiteStones() );
markedStone.setLocation( (int)possibleLocations.get(0).getX(),
(int)possibleLocations.get(0).getY());
try{
Thread.sleep(200);
}catch(Exception ex){ /* nothing */ }
possibleLocations = GameRules.getPossibleMoves( markedStone,
stones.getBlackStones(),
stones.getWhiteStones(),
true);
repaint();
moveAutoForKill(markedStone);
}
repaint();
}
[/code]
Also ich habe ein Spielbrett und will meine Figur jetzt vom System aus automatisch Züge ziehen lassen. Zwischen jedem Zug soll es einen kleinen Timeout geben, das Fenster aber neu gezeichnet werden, damit der Nutzer das ganze beobachten kann, was eigentlich passiert. Dummerweise ist mein Problem, dass ich es schon auf 2 Arten probiert habe, mir keine weiteren einfallen und die Animation so läuft, dass das Programm in der Tat kurz in den Schlafmodus wechselt, also wartet, dann aber nicht eine langsame Animation hinter sich bringt, sondern alles in einem Zug beendet... und das nervt XD
Wäre nett, wenn jemand einen Tipp für mich hat. Ich zeig die verantwortliche Funktion mal mit dazu:
[JAVA=42]
private void moveAutoForKill(GameStone markedStone){
if(possibleLocations.size() == 1){
GameRules.eraseBeatenStoneFromList( markedStone,
new Point( (int) possibleLocations.get(0).getX(),
(int) possibleLocations.get(0).getY() ),
stones.getBlackStones(),
stones.getWhiteStones() );
markedStone.setLocation( (int)possibleLocations.get(0).getX(),
(int)possibleLocations.get(0).getY());
try{
Thread.sleep(200);
}catch(Exception ex){ /* nothing */ }
possibleLocations = GameRules.getPossibleMoves( markedStone,
stones.getBlackStones(),
stones.getWhiteStones(),
true);
repaint();
moveAutoForKill(markedStone);
}
repaint();
}
[/code]