Quelle est la bonne façon d'écrire une boucle de jeu en Python?
Je suis en train d'écrire un python boucle de jeu, espérons-le, prend en compte les FPS. Quelle est la façon correcte d'appel de la boucle? Quelques-unes des possibilités que j'ai vu sont ci-dessous. J'essaie de ne pas utiliser une bibliothèque comme pygame.
1.
while True:
mainLoop()
2.
def mainLoop():
# run some game code
time.sleep(Interval)
mainLoop()
3.
def mainLoop():
# run some game code
threading.timer(Interval, mainLoop).start()
4.
Utilisation sched.le planificateur?
La deuxième et la troisième option démarrer la même méthode à partir de lui-même, donc il y aura quelque chose qui grandit au fil du temps...
"Je ne veux pas utiliser un framework comme pygame" - Alors que voulez-vous utiliser?
Aussi, 1 devrait être écrit comme
Pas sûr de ce que je vais utiliser pour l'interface graphique encore. J'ai, pour l'essentiel, des centaines d'avions qui volent autour, et doivent mettre à jour leurs positions.
"Je ne veux pas utiliser un framework comme pygame" - Alors que voulez-vous utiliser?
Tkinter
? Je pense que vous devez nous dire ce que vous prévoyez de le faire avant que nous puissions vous donner des recommandations.Aussi, 1 devrait être écrit comme
while True:
🙂Pas sûr de ce que je vais utiliser pour l'interface graphique encore. J'ai, pour l'essentiel, des centaines d'avions qui volent autour, et doivent mettre à jour leurs positions.
OriginalL'auteur jastr | 2013-04-30
Vous devez vous connecter pour publier un commentaire.
Si j'ai bien compris vous souhaitez baser votre jeu de logique sur un temps delta.
Essayer d'obtenir un temps delta entre chaque image, puis de disposer vos objets se déplacent par rapport à l'époque delta.
Si vous aussi vous souhaitez limiter le nombre d'images par seconde, un moyen facile serait en train de dormir la quantité appropriée de temps après chaque mise à jour.
Être conscient de la pensée que cela ne fonctionne que si votre matériel est plus que assez rapide pour votre jeu. Pour plus d'informations sur le jeu des boucles de vérifier cette.
PS) Désolé pour la Javaish les noms de variables... Juste pris une pause de quelques Java.
OriginalL'auteur Alex