2013-06-24 4 views
0

Je fais un jeu de course de voiture en utilisant le framework Libgdx, dans lequel quand le jeu est terminé, il y a un bouton réessayer sur le jeu et en cliquant sur ce bouton aller à l'écran de jeu sur lequel je veux redémarrer mais pas arriver et l'écran affiché sur l'écran de jeu est le dernier lorsque le jeu est terminé.Comment aller sur l'écran de jeu directement après le jeu dans libgdx?

private void updateGameOver() { 

    if(Gdx.input.justTouched()){ 
     guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0)); 
     if(OverlapTester.pointInRectangle(resumeButtonBounds, touchPoint.x, touchPoint.y)){ 
      state = GAME_RUNNING; 
      return; 
     } 

}

} 
private void presentGameOver() { 

    spriteBatch.draw(Assets.retryButtonRegion, 480/2 - 183/2, 800/2 - 185, 183, 90); 


} 

Répondre

1

Lorsque vous définissez l'état sur l'exécution de l'instance de tous les éléments du jeu, par exemple car, dans votre cas, n'est pas réinitialisé.

Vous devez appeler le constructeur de votre écran de jeu

private void updateGameOver() { 
if(Gdx.input.justTouched()){ 
    guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0)); 
    if(OverlapTester.pointInRectangle(resumeButtonBounds, touchPoint.x, touchPoint.y)){ 
     game.setscreen(new GameScreen(game,batcher)); 
     return; 
    } 

Cela devrait résoudre votre problème.

+0

merci Kumar Saurabh pour votre réponse. Selon vous, j'ai changé mon code et son fonctionnement. –

0

Ajouter un clickListener au bouton et mettre en œuvre votre méthode là. Jetez un oeil à la Sceen2D wiki
chèque Sinon, si vous obtenez même une valeur là-bas. Donc, ajoutez un enregistreur dans votre instruction If et vérifiez si vous avez un journal. (Gdx.app.log("",""))

+0

Salut merci pour votre réponse, mais j'ai déjà résolu mon problème. –

Questions connexes