Mueve en cada fotograma
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 7 de 32.
El bucle del juego se ejecuta 60 veces por segundo, así que una línea en la parte «Change things here» se ejecuta una vez por fotograma. Úsala para cambiar un poco una variable cada vez:
comet_x = comet_x + 2Léelo de derecha a izquierda: toma el valor de comet_x, súmale 2 y guarda el resultado de nuevo en comet_x. Si tenía 40, ahora tiene 42. En el siguiente fotograma pasa a 44 y después a 46.
El cometa se dibuja en comet_x en cada fotograma, así que cada fotograma lo muestra 2 píxeles más a la derecha: 120 píxeles por segundo. Así es como se mueve todo en un juego: un número que cambia un poco en cada fotograma.
comet_x = 40 está en la parte de configuración, donde se ejecuta una vez. Dentro del bucle, volvería a poner el cometa en 40 en cada fotograma, y el cometa se quedaría quieto.
Python tiene una forma abreviada: comet_x += 2 hace lo mismo.
Desafío
FácilHaz que el cometa vuele: en la parte # Change things here, once a frame., suma 2 a comet_x en cada fotograma, para que se mueva 2 píxeles hacia la derecha por fotograma.
Pruébalo tú mismo
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Prepara todo aquí, antes del bucle del juego.
moon_x = 160
moon_y = 120
comet_x = 40
comet_y = 200
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Cambia las cosas aquí, una vez por fotograma.
screen.fill((20, 24, 48))
# Dibuja aquí, después de rellenar la pantalla.
pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Todas las lecciones de Python en una ventana de juego
2Números y variables
Ponle nombre a un valorHaz cálculosMueve en cada fotogramaPalabras en pantallaNúmeros enteros y decimalesPractica por tu cuenta: Playground de Pygame