Mientras usamos pygame, a veces necesitamos realizar ciertas operaciones que incluyen el uso del tiempo. Como encontrar cuánto tiempo ha estado funcionando nuestro programa, pausar el programa por una cantidad de tiempo, etc. Para operaciones de este tipo, necesitamos usar los métodos de tiempo de pygame. En este artículo, discutiremos los diversos métodos que se pueden usar para realizar estas operaciones.
La función que discutiremos son: –
- pygame.time.wait
- pygame.time.get_ticks
- pygame.time.delay
- pygame.time.Reloj
pygame.time.wait
Esta función se utiliza para pausar la ejecución del programa durante unos segundos. toma tiempo en milisegundos como parámetro. Por ejemplo, para demostrar esta función, escribiremos un programa simple para que el logotipo de geeksforgeeks aparezca en la pantalla solo después de 5 segundos. El código para esto será:
Python
# importing pygame module import pygame # importing sys module import sys # initialising pygame pygame.init() # creating display display = pygame.display.set_mode((500, 500)) # Creating the image surface image = pygame.image.load('gfg_logo.png') # putting our image surface on display surface display.blit(image,(100,100)) # making the script wait for 5000 seconds pygame.time.wait(5000) # creating a running loop while True: # creating a loop to check events that are occurring for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # updating the display pygame.display.flip()
Producción:
El resultado de esto será que el script esperará 5 segundos y luego actualizará la pantalla para mostrar el logotipo de geeksforgeeks.
Es un poco menos preciso que pygame.time.delay, del que hablaremos más adelante en este artículo, porque usa el modo de suspensión pero el otro usa el procesador.
pygame.time.get_ticks
Esta función da un tiempo que se ha estado ejecutando en milisegundos. Por ejemplo, si queremos escribir un código simple para demostrar este ejemplo, puede ser:
Python
# importing pygame module import pygame # initialising pygame pygame.init() # creating a variable i=0 while i<5: # storing the time in ticks variable ticks=pygame.time.get_ticks() # printing the variable ticks print(ticks) # increasing the value of i by 1 i=i+1 # pausing the script for 1 second pygame.time.wait(1000)
Producción:
El tiempo se imprime para cada iteración, incluido el tiempo durante el cual pausamos el script en cada iteración.
pygame.time.delay
Esta función funciona igual que la función pygame.time.wait, la diferencia es que esta función usará el procesador (en lugar de dormir) para que la demora sea más precisa. El código de muestra se puede escribir igual que la función pygame.time.wait simplemente reemplazando el nombre:
Python
# importing pygame module import pygame # importing sys module import sys # initialising pygame pygame.init() # creating display display = pygame.display.set_mode((500, 500)) # Creating the image surface image = pygame.image.load('gfg_logo.png') # putting our image surface on display surface display.blit(image,(100,100)) # making the script wait for 5000 seconds pygame.time.delay(5000) # creating a running loop while True: # creating a loop to check events that are occurring for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # updating the display pygame.display.flip()
Producción:
pygame.time.Reloj
Esta función se usa para crear un objeto de reloj que se puede usar para realizar un seguimiento del tiempo. Los diversos métodos del objeto de reloj están a continuación:
tick() : este método debe llamarse una vez por fotograma. Calculará cuántos milisegundos han pasado desde la llamada anterior. Si pasa el argumento de velocidad de fotogramas opcional, la función se retrasará para mantener el juego funcionando más lento que los tics por segundo dados. Por ejemplo, si pasamos 10 como argumento, el programa nunca se ejecutará a más de 10 fotogramas por segundo.
get_time(): Se utiliza para obtener un número de milisegundos utilizados entre dos tick().
get_fps() : da información sobre la velocidad de fotogramas del reloj. devuelve la salida en valor de coma flotante.
Un programa simple para demostrar esta función podría ser:
Python
# importing the pygame module import pygame # initialising the pygame pygame.init() # declaring a variable i with value 0 i=0 # creating a clock object clock=pygame.time.Clock() # creating a loop for 5 iterations while i<5: # setting fps of program to max 1 per second clock.tick(1) # printing time used in the previous tick print(clock.get_time()) # printing compute the clock framerate print(clock.get_fps()) i=i+1
Producción:
Como hemos pasado 1 en el método de marca, establece el máximo de fps en 1. Lo que da como resultado un tiempo entre cada fotograma cercano a los 1000 milisegundos.
Publicación traducida automáticamente
Artículo escrito por yashgupta0524 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA