2014-05-14 5 views
-1

Je fais un jeu en Java et j'essaie de faire mon menu de pause. En ce moment, je vérifie que le bouton Echap est enfoncé et exécute mon menu JFrame. Le problème est que mon jeu continue de fonctionner en arrière-plan. Comment est-ce que j'arrêterais le fil de jeu pendant que le menu est ouvert?Mettre le fil de discussion en pause pendant que JFrame est ouvert

Code pour la boucle principale du jeu

public void run() { 
    try { 
     init(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    long lastTime = System.nanoTime(); 
    final double amountOfTicks = 60D; 
    double ns = 1000000000/amountOfTicks; 
    double delta = 0; 

    while(running){ 
     long now = System.nanoTime(); 
     delta +=(now - lastTime)/ns; 
     lastTime = now; 
     if (delta >= 1) { 
      tick(); 
      delta--; 
     } 
     render(); 
    } 
    stop(); 
} 

Code de vérification pour le menu de pause

public void tick() { 

    if (up) { 

     playerUp = true; 
     playerDown = false; 
     playerLeft = false; 
     playerRight = false; 
     y -= SPEED; 
     moving = true; 
    } 
    if (dn) { 
     playerDown = true; 
     playerLeft = false; 
     playerRight = false; 
     playerUp = false; 
     y += SPEED; 
     moving = true; 
    } 
    if (lt) { 

     playerLeft = true; 
     playerRight = false; 
     playerDown = false; 
     playerUp = false; 
     x -= SPEED; 
     moving = true; 
    } 
    if (rt) { 
     playerRight = true; 
     playerLeft = false; 
     playerUp = false; 
     playerDown = false; 
     x += SPEED; 
     moving = true; 
    } 


    if (esc) { 
     pauseMenu.main(null); 
    } 
+1

Veuillez partager un exemple de code. – Braj

+0

regardez ici peut-être: http://stackoverflow.com/questions/8299010/how-to-pause-and-resume-a-simple-game-in-java pour un petit échantillon ... sinon aide à montrer certains de vos code – pL4Gu33

+0

question éditée avec code inclus –

Répondre

0

A Conseils couple:

tick() est l'endroit où vous utilisez le code de votre jeu, mais il shouldn ne décidez pas quand cocher - parce que si elle est mise en pause, comment se répète-t-elle elle-même?

Vous limitez déjà le nombre de fois que vous appelez tick(). Essentiellement, vous voulez le limiter encore plus lorsque votre jeu est "suspendu".

Questions connexes