Je crée un exemple de jeu dans la toile dans une vue de surface.Android - Pause et reprise du fil rend mon fil lent
J'utilise un certain temps avec les méthodes de mise à jour et de dessin, tout fonctionne. Maintenant, j'essaie de faire une pause et de reprendre le jeu. Avec les méthodes que j'ai trouvé sur Internet travaillé, mais quand le jeu est repris, il est beaucoup plus lent.
Mon jeu en boucle:
while(playing){ // on runnable thread update(); // update all objects of the game draw(); // draw all objects of the game control(); // first remove dead objects, after sleep the Thread. }
Et ma pause et méthode resume:
public void pause(){ playing = false; try{ gameThead.sleep(17); } catch(ex){}; } public void resume(){ playing = true; gameThread = new gameThread(this); // this object is a runnable gameThread.start(); }
Est-ce que quelqu'un sait pourquoi ralentissement? Et la solution? (Note: J'ai essayé de donner un sommeil fixe au lieu d'une variable, le résultat est la même lenteur)
Merci.
@EDIT
J'ai trouvé la peine.
Mon activité avait un écouteur onResume(), et cela lance le thread init ... Mais sur ma construction de surfaceview je le fais aussi ... Reprise: Quand le jeu est démarré, avoir 2 threads ... pause ne pas faire le jeu trop lent, la pause fait le jeu est à la bonne vitesse ... Le jeu de départ faire le jeu ont 2 thread (et 2 mises à jour)
Merci.
J'ai essayé, mais le résultat est le même. –
Je ne comprends pas. –
while (lecture) { if (isPaused) {.... jeu boucle }} OnPause: isPaused = true; OnResume: IsPaused = false; –