Resta sullo schermo
Lezione 7 di 41 del corso Crea giochi con Pygame di Coddy.
Tieni premuto il tasto destro abbastanza a lungo e il quadrato esce dalla finestra. Per mantenerlo al suo 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, mentre 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
FacileMantieni il quadrato all'interno della finestra di 480 per 360.
- Dopo i quattro controlli delle frecce, prima del riempimento, limita
xda 0 a 440. - Limita
yda 0 a 320.
Premi «Gioca» e tieni premuta una freccia: il quadrato si ferma al bordo. Poi premi «Verifica».
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 Crea giochi con Pygame
1Il ciclo di gioco
Apri una finestraRiempi lo sfondoEsercitati da solo: Playground Pygame