À l'intérieur de la boucle de jeu, le jeu est interrompu en appuyant sur P, ce qui signifie que la boucle de jeu ne s'exécute plus. Le problème est qu'après l'arrêt de cette boucle, P ne peut pas être pressé à nouveau pour reprendre la boucle, car il était à l'intérieur de la boucle elle-même. Comment faire en sorte que lorsque vous appuyez à nouveau sur P, la boucle fonctionne à nouveau?
12
checkInput
fonction différente pour le mode suspendu et le mode non suspendu, car il peut y avoir des contrôles qui ne sont disponibles que dans un mode ou dans l'autre. LacheckInput
fonction pour le mode pause peut ne rien faire de plus que de regarder si elleP
est appuyée puis définiegameIsPaused = false
, mais certains jeux placent également des fonctionnalités supplémentaires sur l'écran de pause (dans les années 90, il était populaire d'avoir l'écran de pause comme entrée cachée pour les codes de triche, moderne jeux aiment le combiner avec un écran de menu).checkInput
/render
/update
.Faites en sorte que le fait d'appuyer sur P bascule vers une autre boucle qui gère l'état de jeu "En pause" et permet de revenir à la boucle de jeu d'origine en appuyant à nouveau sur P.
Vous pouvez réellement mettre tout cela dans la boucle de jeu elle-même et introduire une variable d'état, si vous le souhaitez et au lieu de désactiver la boucle, la variable d'état bascule entre l'exécution du code spécifique à l'état respectif dans la boucle.
la source