Menu
CoddyTech

Boucler autour de l’écran

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

Dans de nombreux jeux spatiaux, un vaisseau ou un rocher qui quitte l’écran d’un côté réapparaît de l’autre. C’est le retour à l’écran opposé. Ici, le rocher dérive vers le haut et vers la droite, puis disparaît pour de bon au bout de quelques secondes.

Vérifie chaque bord après le déplacement. Le rayon du rocher est de 20, alors laisse-le sortir complètement de l’écran avant qu’il ne réapparaisse : après 480 + 20 à droite, il revient à -20, hors de vue au-delà du bord gauche, puis entre à l’écran.

if pos.x > 500:
    pos.x = -20
if pos.x < -20:
    pos.x = 500

Il en va de même pour y avec la hauteur : après 380 en bas, il revient à -20, et au-dessus de -20, il revient à 380.

Seule la position change brusquement. La vélocité reste la même, donc le rocher continue de dériver dans la même direction après sa réapparition.

challenge icon

Défi

Facile

Après pos += vel * dt, faites réapparaître le rocher de l’autre côté :

  1. Au-dessus de 500, pos.x devient -20 ; en dessous de -20, il devient 500.
  2. Au-dessus de 380, pos.y devient -20 ; en dessous de -20, il devient 380.

Essayez vous-même

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Drifting Rock")
clock = pygame.time.Clock()

pos = pygame.Vector2(240, 180)
vel = pygame.Vector2(120, -70)
dt = 0

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    pos += vel * dt

    screen.fill((20, 20, 34))
    pygame.draw.circle(screen, (150, 150, 160), pos, 20)
    pygame.display.flip()
    dt = clock.tick(60) / 1000

pygame.quit()
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de La boucle de jeu

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