Menu
CoddyTech

Mantenerse en pantalla

Lección 7 de 41 del curso Crea juegos con Pygame de Coddy.

Mantén pulsada la tecla de flecha derecha el tiempo suficiente y el cuadrado saldrá de la ventana. Para mantenerlo dentro, limita x y y después de moverlos.

min(a, b) devuelve el número menor y max(a, b), el mayor. Juntas, mantienen un número entre dos límites:

x = max(0, min(x, 480 - 40))

min(x, 440) impide que x supere 440, y max(0, ...) impide que baje de 0. ¿Por qué 440 y no 480? x es el lado izquierdo del cuadrado, así que el lado derecho está en x + 40. En 440, el lado derecho toca el borde de la ventana.

Lo mismo ocurre con y, usando la altura de la ventana.

challenge icon

Desafío

Fácil

Mantén el cuadrado dentro de la ventana de 480 por 360.

  1. Después de las cuatro comprobaciones de las flechas y antes del relleno, limita x de 0 a 440.
  2. Limita y de 0 a 320.

Pulsa «Jugar» y mantén pulsada una flecha: el cuadrado se detiene en el borde. Después, pulsa «Comprobar».

Pruébalo tú mismo

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()

x, y = 220, 160

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

    keys = pygame.key.get_pressed()
    speed = 4
    if keys[pygame.K_SPACE]:
        speed = 8
    if keys[pygame.K_LEFT]:
        x -= speed
    if keys[pygame.K_RIGHT]:
        x += speed
    if keys[pygame.K_UP]:
        y -= speed
    if keys[pygame.K_DOWN]:
        y += speed

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Todas las lecciones de Crea juegos con Pygame

Practica por tu cuenta: Playground de Pygame