Menu
CoddyTech

Colocarla con un rectángulo

Parte de la sección Sprites e imágenes del Journey de Pygame de Coddy. Lección 2 de 36.

Calcular a mano una esquina superior izquierda implica hacer sumas por cada imagen que coloques. Cada Surface puede proporcionar un Rect de su propio tamaño:

ship_rect = ship.get_rect(center=(320, 400))

Por sí solo, get_rect() es Rect(0, 0, 64, 64). Una palabra clave lo coloca: center, midbottom, topleft o cualquier otro punto que tenga un Rect. Aquí, el centro de la nave se sitúa en (320, 400) y pygame calcula la esquina: (288, 368).

Usa blit para dibujar la imagen en el Rect, y quedará en la esquina superior izquierda del Rect:

screen.blit(ship, ship_rect)

Ahora el Rect es la posición de la nave. Cambia ship_rect.x o ship_rect.centery y el siguiente fotograma dibujará la nave allí. Así se mueve cada imagen de un juego: conserva un Rect, cambia el Rect y dibuja con blit en el Rect. También es el Rect que usas para comprobar las colisiones, como en la sección 2.

challenge icon

Desafío

Fácil
  1. Después de cargar ship, crea ship_rect = ship.get_rect(center=(320, 400)).
  2. Dibuja ship en ship_rect en lugar de en un punto fijo.

Pruébalo tú mismo

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()

ship = pygame.image.load("assets/images/ship.png").convert_alpha()

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((20, 22, 40))
    screen.blit(ship, (288, 208))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Sprites e imágenes

Practica por tu cuenta: Playground de Pygame