Menu
CoddyTech

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.

challenge icon

Sfida

Facile

Mantieni il quadrato all'interno della finestra di 480 per 360.

  1. Dopo i quattro controlli delle frecce, prima del riempimento, limita x da 0 a 440.
  2. Limita y da 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

Esercitati da solo: Playground Pygame