2014-02-10 2 views
-1

Я занимаюсь разработкой игры, основанной на поворотах.Показаны анимация и перезагрузка игры

Что я хочу: - Когда кто-то выигрывает, анимационные всплывающие окна и его игроки показывают 1 или 2 победы. Затем он ждет 2 секунды, после чего игра перезапускается.

Что я получаю: - Анимация всплывает в порядке, она ждет 2 секунды, но после этого отображается завершенная игровая площадка, т.е. игра не перезапускается.

animation.java

public void onAnimationEnd(Animation animation) 
{ 
    // Take any action after completing the animation 
    // check for fade in animation 
    if (animation == ani) 
    { 
     //Toast.makeText(getApplicationContext(), "Animation Stopped", 
      // Toast.LENGTH_SHORT).show(); 
     Thread.currentThread(); 
     try 
     { 
      Thread.sleep(2000); 
      finish(); 
     } 
     catch (Exception e) 
     { 

     } 

    } 

} 

gameboard.java

public void winner(int x) 
    { 
        int a=gameArray[x]; 

     Intent i = new Intent(this, animation.class); 
     i.putExtra("winner", a); 
     startActivity(i); 

    } 

То, что я пытался и не работал: -

gameboard.java

public void winner(int x) 
    { 
        int a=gameArray[x]; 

     Intent i = new Intent(this, animation.class); 
     i.putExtra("winner", a); 
     startActivity(i); 
        Thread.currentThread(); 
     try 
     { 
      Thread.sleep(2000); 
      finish(); 
        Intent b= new Intent(this, gameboard.class); 
        startActivity(b); 
     } 
     catch (Exception e) 
     { 

     } 

    } 

При этом анимация вообще не отображается, игровая нить засыпает после победы любого игрока. Но через 2 секунды игра перезапускается.

Я нарисовал игровое поле с использованием canvas.drawLine и в методе drawBoard(). Что мне делать.

ответ

0

Посмотрите на класс Timer в Android SDK. Это специализированный поток. Вы можете просто выполнить задачу, которую вы выполняете, и реализовать ее как объект TimerTask. Я сам использую это для запуска движка анимации. Просмотрите API для следующего метода. Надеюсь это поможет!!!

Timer.schedule(TimerTask task, long delay) 
+0

Это именно то, что я искал. Благодарю. – Mohit

Смежные вопросы