Resta sullo schermo
Fa parte della sezione Il game loop del percorso Pygame di Coddy. Lezione 7 di 32.
Tieni premuto Right abbastanza a lungo e il quadrato esce dalla finestra. Per mantenerlo all'interno, limita x e y dopo averli spostati.
min(a, b) restituisce il numero più piccolo e max(a, b) quello più grande. Insieme mantengono un numero tra due limiti:
x = max(0, min(x, 480 - 40))min(x, 440) impedisce a x di superare 440, e max(0, ...) gli impedisce di scendere sotto 0. Perché 440 e non 480? x è il lato sinistro del quadrato, quindi il lato destro si trova a x + 40. A 440 il lato destro tocca il bordo della finestra.
Lo stesso vale per y, usando l'altezza della finestra.
Sfida
FacileDopo i quattro controlli delle frecce e prima del riempimento, mantieni il quadrato all'interno della finestra 480 per 360: limita x da 0 a 440 e y da 0 a 320.
Provalo tu
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()
Tutte le lezioni di Il game loop
1Muovi un quadrato
Apri una finestraRiempi lo sfondoEsercitati da solo: Playground Pygame