Menu
CoddyTech

Rester à l’écran

Fait partie de la section La boucle de jeu du Journey Pygame de Coddy. Leçon 7 sur 32.

Maintiens la touche Droite assez longtemps et le carré sort de la fenêtre. Pour le garder à l’intérieur, limite x et y après les avoir déplacés.

min(a, b) renvoie le plus petit nombre et max(a, b) le plus grand. Ensemble, ils maintiennent un nombre entre deux limites :

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

min(x, 440) empêche x de dépasser 440, et max(0, ...) l’empêche de descendre en dessous de 0. Pourquoi 440 et non 480 ? x est le côté gauche du carré, donc le côté droit se trouve à x + 40. À 440, le côté droit touche le bord de la fenêtre.

Il en va de même pour y, en utilisant la hauteur de la fenêtre.

challenge icon

Défi

Facile

Après les quatre vérifications des flèches et avant le remplissage, gardez le carré à l’intérieur de la fenêtre de 480 sur 360 : limitez x de 0 à 440 et y de 0 à 320.

Essayez vous-même

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()

Toutes les leçons de La boucle de jeu

Entraînez-vous par vous-même : Playground Pygame