Control del tiempo entre disparos - Curso Pygame - Capítulo 18


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.

Código

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.

Código

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.

Código

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.


Suscríbete a mi canal de YouTube para apoyarme

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.


Comentarios

Si te quedan dudas sobre el temario, sobre Python, 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.