Pygame – Tiempo

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *