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.
Desafío
Fácil- Después de cargar
ship, creaship_rect = ship.get_rect(center=(320, 400)). - Dibuja
shipenship_recten 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()
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
1Cargar imágenes
Cargar una imagenColocarla con un rectánguloMover la imagenRepetir un fondo en mosaicoPíxeles transparentes2Girar, voltear y escalar
Girar alrededor del centroApuntar en la dirección del vueloEscalar una imagenGirar desde la imagen original5Colisiones precisas a nivel de píxel
Los rectángulos parecen injustosMáscarasSprites precisos a nivel de píxelHitboxes circulares3Clases para objetos del juego
Tu primera claseMétodosSelf es el objetoUna lista de objetosObjetos con imágenesUna subclase6Animación con hojas de sprites
Recortar una hoja de spritesUn contador de fotogramasAnimar con el tiempoUna explosión de una sola vezPractica por tu cuenta: Playground de Pygame