Mover la imagen
Parte de la sección Sprites e imágenes del Journey de Pygame de Coddy. Lección 3 de 36.
La nave está en la parte inferior de la ventana. Para hacerla volar hacia la izquierda y la derecha, mueve su Rect con las teclas de flecha, igual que moviste el cuadrado en la sección 2:
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
ship_rect.x -= 6
if keys[pygame.K_RIGHT]:
ship_rect.x += 6La línea blit no cambia: dibuja en la posición actual del Rect.
Un Rect puede mantenerse dentro de otro Rect. screen.get_rect() es el Rect de la ventana, (0, 0, 640, 480), y
ship_rect.clamp_ip(screen.get_rect())vuelve a mover ship_rect hacia dentro cuando sobresale. _ip significa «in place» (en el mismo sitio): modifica el propio ship_rect. ship_rect.clamp(...), sin eso, deja intacto ship_rect y te devuelve un Rect nuevo.
Desafío
Fácil- En el bucle, antes de dibujar, mantener pulsada la tecla de flecha izquierda mueve
ship_rect6 píxeles a la izquierda y mantener pulsada la tecla de flecha derecha lo mueve 6 píxeles a la derecha. - Después, mantenlo dentro de la ventana con
ship_rect.clamp_ip(screen.get_rect()).
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()
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 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