Avez-vous déjà voulu créer un jeu passionnant à l'aide de la bibliothèque PyGame de Python, mais vous êtes senti submergé par le concept de gestion du temps? Si oui, vous n'êtes pas seul.
Le temps est l'un des composants les plus critiques du développement de jeux, et comprendre comment le temps fonctionne dans PyGame est essentiel pour créer des jeux attrayants et réussis. PyGame fournit plusieurs fonctions et modules utiles qui vous permettent de contrôler le temps dans vos jeux.
Créer un jeu simple
Commencez par créer un jeu simple où un rectangle se déplace vers la droite. Pour commencer, installer pip sur votre appareil et utilisez la commande ci-dessous pour installer le module PyGame :
pip installer pygame
Vous pouvez trouver tous les exemples de code dans ce Dépôt GitHub.
Une fois installé, importez le module PyGame. Créez ensuite un écran avec une taille de 800x600 et une couleur de fond blanche, et ajoutez un objet rect. Le code devrait ressembler à ceci :
importer pygame
pygame.init()
écran = pygame.display.set_mode((800, 600))
fond = pygame. Surface (screen.get_size())
background.fill((255, 255, 255))
rect = pygame. Rect(0, 0, 20, 20)
Après cela, utilisez une boucle while pour que le jeu continue de fonctionner et que l'objet rect se déplace vers la droite jusqu'à ce qu'il atteigne la fin de l'écran.
courir = Vrai
alors que en cours d'exécution:
pour événement dans pygame.event.get() :
si événement.type == pygame. ARRÊTER:
courir = FAUX
rect.x += 1
si rect.x > 780:
rect.x = 0
screen.blit (arrière-plan, (0, 0))
pygame.draw.rect (écran, (0, 0, 0), rect)
pygame.display.update()
Vous pouvez également ajouter des entrées utilisateur et collisions dans le jeu. Ci-dessous la sortie :
Présentation du module de temps de PyGame
Pour contrôler le temps dans ce jeu, vous pouvez utiliser le pygame.time module. Ce module fournit diverses fonctionnalités utiles, y compris un Horloge objet avec des méthodes comme get_ticks(), attendez(), et retard(). En utilisant ces fonctions, vous pouvez facilement contrôler le temps de votre jeu.
Création d'un objet horloge pour suivre le temps
Dans PyGame, vous pouvez utiliser un objet Clock pour suivre le temps. Pour créer une Clock, utilisez simplement la ligne de code suivante :
horloge = pygame.heure. Horloge()
Avec cet objet Horloge, vous pouvez désormais suivre l'heure de votre jeu. Il existe également plusieurs autres fonctions utiles associées à l'objet Horloge, telles que :
-
obtenir du temps(): A l'aide de cette fonction, vous pouvez récupérer le temps pris pour chaque image du jeu. Pour utiliser cette fonction, ajoutez simplement la ligne de code suivante après la boucle while:
Ajoutez un objet texte pour afficher le temps pris:heure = horloge.get_time()
police = pygame.font. SysPolice('Arial', 18)
texte = font.render('Temps pris: {} ms'.format (heure), Vrai, (0, 0, 0))
screen.blit (texte, (0, 0)) -
cocher(): Utilisez cette fonction pour définir la fréquence d'images du jeu. Par défaut, la fréquence d'images est définie sur 60 FPS. Pour le régler à 30 FPS, ajoutez simplement la ligne de code suivante:
horloge.tick(30)
-
get_fps(): Vous pouvez récupérer la fréquence d'images actuelle du jeu en utilisant get_fps. Pour utiliser cette fonction, ajoutez simplement la ligne de code suivante:
Vous pouvez ajouter un objet texte pour afficher la fréquence d'images:fps = horloge.get_fps()
police = pygame.font. SysPolice('Arial', 18)
texte = font.render('FPS: {}'.format (fps), Vrai, (0, 0, 0))
screen.blit (texte, (0, 20)) -
tick_busy_loop() : Cette fonction permet de calculer combien de millisecondes se sont écoulées depuis le dernier appel au cocher() fonction. Pour l'utiliser, ajoutez simplement la ligne de code suivante:
horloge.tick_busy_loop(30)
Obtenir l'heure à l'aide de get_ticks
Le get_ticks() La fonction renvoie le temps en millisecondes depuis l'initialisation de PyGame. Pour utiliser cette fonction, ajoutez la ligne de code suivante :
time_elapsed = pygame.time.get_ticks()
Ajoutez un objet texte pour afficher le temps pris :
police = pygame.font. SysPolice('Arial', 18)
texte = font.render('Temps écoulé: {} ms'.format (time_elapsed), Vrai, (0, 0, 0))
screen.blit (texte, (0, 40))
Vous pouvez utiliser le temps écoulé pour implémenter des éléments de jeu basés sur le temps, tels que des bonus qui durent un certain temps. Par exemple, vous pouvez implémenter une mise sous tension qui augmente la vitesse de l'objet rect pendant 5 secondes :
si temps écoulé / 5000 > 0:
rect.x += 5
Ci-dessous la sortie :
Mettre le jeu en pause à l'aide des fonctions d'attente et de délai
PyGame fournit également deux fonctions que vous pouvez utiliser pour mettre le jeu en pause pendant un certain temps: le attendez fonction et la retard fonction.
Pour utiliser le attendez fonction, ajoutez simplement la ligne de code suivante dans la boucle while :
pygame.time.wait(1000)
Cela mettra le jeu en pause pendant 1000 millisecondes (1 seconde). Pour utiliser le retard fonction, ajoutez simplement la ligne de code suivante dans la boucle while :
pygame.time.delay(1000)
Cela retardera la prochaine image du jeu de 1000 millisecondes (1 seconde).
Différences entre attendre et retarder
Il existe quelques différences entre les attendez et retard les fonctions. Le attendez la fonction dort le processus pour partager le processeur avec d'autres programmes. Le retard utilisera le processeur pour rendre le délai plus précis. Cela signifie que le retard la fonction nécessite plus de puissance de processeur que la attendez fonction et convient aux jeux qui nécessitent un timing précis.
Création d'un événement à l'aide de set_timer
Vous pouvez utiliser le Régler la minuterie() fonction pour créer un événement qui se déclenche après un laps de temps spécifié.
Les événements dans PyGame sont des objets qui contiennent des informations sur les entrées de l'utilisateur ou les messages générés par le programme. Pour utiliser cette fonction, créez un événement personnalisé et ajoutez la ligne de code suivante :
pygame.time.set_timer (CUSTOM_EVENT, 1000)
Cela créera un événement qui se déclenchera après 1 000 millisecondes, soit 1 seconde. Il existe différents types d'événements que vous pouvez déclencher, tels que le mouvement de la souris, la saisie au clavier et les événements de fenêtre. Votre code peut alors réagir à ces événements de la manière la plus appropriée.
Par exemple, si vous souhaitez modifier l'axe des ordonnées de l'objet rect après 1 seconde ou lorsque l'événement personnalisé se déclenche, vous pouvez ajouter la ligne de code suivante :
si événement.type == CUSTOM_EVENT :
rect.y += 20
De cette façon, vous pouvez facilement créer des événements basés sur le temps dans votre jeu que vous pouvez utiliser pour créer un gameplay intéressant et stimulant.
Améliorez les commandes de jeu avec le temps
Avec l'aide du contrôle du temps, vous pouvez améliorer les contrôles du jeu. Vous pouvez utiliser le temps pour implémenter des conditions d'accélération, de décélération et même de game-over. De nombreux jeux introduisent le concept de bullet time où l'action ralentit pendant une courte période.
En utilisant les fonctions de contrôle du temps dans PyGame, vous pouvez facilement implémenter ces fonctionnalités, et plus encore, dans vos propres jeux.