Menu
CoddyTech

Mova a imagem

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

A nave fica na parte inferior da janela. Para movê-la para a esquerda e para a direita, mova seu Rect com as teclas de seta, como você fez com o quadrado na seção 2:

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    ship_rect.x -= 6
if keys[pygame.K_RIGHT]:
    ship_rect.x += 6

A linha de blit não muda: ela desenha onde quer que o Rect esteja agora.

Um Rect pode se manter dentro de outro Rect. screen.get_rect() é o Rect da janela, (0, 0, 640, 480), e

ship_rect.clamp_ip(screen.get_rect())

move ship_rect de volta para dentro dele quando ele ultrapassa seus limites. _ip significa in place: ele altera o próprio ship_rect. ship_rect.clamp(...), sem isso, não altera ship_rect e fornece um novo Rect.

challenge icon

Desafio

Fácil
  1. No loop, antes de desenhar, manter a tecla Left pressionada move ship_rect 6 pixels para a esquerda, e manter a tecla Right pressionada move-o 6 pixels para a direita.
  2. Em seguida, mantenha-o dentro da janela com ship_rect.clamp_ip(screen.get_rect()).

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()
ship_rect = ship.get_rect(center=(320, 400))

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, ship_rect)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Todas as lições de Sprites e imagens

Pratique por conta própria: Playground de Pygame