Control de la cadencia de proyectiles en Pygame
Capítulo 18: Control del tiempo entre disparos
En este capítulo vamos a ver cómo controlar el tiempo entre acontecimientos, de esta forma podremos controlar el tiempo que tarda nuestra nave entre disparo y disparo.
Lo primero que tienes que hacer es añadir una cadencia en milisegundos dentro de la clase Jugador
.
self.cadencia = 750
Entre disparo y disparo, tendremos que calcular cuanto tiempo ha pasado desde el último disparo. Para ello, debemos utilizar el get_ticks()
de Pygame.
self.ultimo_disparo = pygame.time.get_ticks()
Una vez tenemos el control de los disparos, es hora de hacer un sencillo condicional para obtener el tiempo del momento del disparo.
if teclas[pygame.K_SPACE]:
ahora = pygame.time.get_ticks()
if ahora - self.ultimo_disparo > self.cadencia:
self.disparo()
self.ultimo_disparo = ahora
Por si no lo entiendes muy bien, le estamos diciendo es que si han pasado los milisegundos especificados en la variable cadencia, que dispare.
Y por último, una vez realizado el disparo, que ponga el tiempo de último disparo en ahora
.
Y así vuelve a empezar cada vez que pulsamos la tecla espacio.
En el vídeo podrás ver los resultados y entender mejor este código.
Comentarios
Si te quedan dudas sobre el temario, sobre Python, Pygame o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.