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.
Défi
FacileAprè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
1Déplacer un carré
Ouvrir une fenêtreRemplir l’arrière-plan4Déplacement en fonction du temps
Temps deltaPixels par secondeVector2Accélération et frictionBoucler autour de l’écranEntraînez-vous par vous-même : Playground Pygame