Menu
CoddyTech

Posicione-a com um Rect

Parte da seção Sprites e imagens do Journey de Pygame da Coddy. Lição 2 de 36.

Calcular manualmente o canto superior esquerdo significa fazer contas para cada imagem que você posiciona. Cada Surface pode fornecer um Rect com seu próprio tamanho:

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

Sozinho, get_rect() é Rect(0, 0, 64, 64). Uma palavra-chave posiciona o Rect: center, midbottom, topleft ou qualquer outro ponto que um Rect tenha. Aqui, o centro da nave fica em (320, 400), e o pygame calcula o canto: (288, 368).

Desenhe a imagem na posição do Rect, e ela ficará no canto superior esquerdo do Rect:

screen.blit(ship, ship_rect)

Agora o Rect representa a posição da nave. Altere ship_rect.x ou ship_rect.centery, e o próximo quadro desenhará a nave nessa posição. É assim que todas as imagens de um jogo se movem: mantenha um Rect, altere o Rect e desenhe na posição do Rect. Esse também é o Rect que você usa para testar colisões, como na seção 2.

challenge icon

Desafio

Fácil
  1. Após carregar ship, faça ship_rect = ship.get_rect(center=(320, 400)).
  2. Desenhe ship em ship_rect em vez de em um ponto fixo.

Experimente você mesmo

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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Sprites e imagens

Pratique por conta própria: Playground de Pygame