Menu
CoddyTech

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 + 2

Lé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.

challenge icon

Desafío

Fácil

Haz 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

Practica por tu cuenta: Playground de Pygame