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 = 500Il 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.
Défi
FacileAprès pos += vel * dt, faites réapparaître le rocher de l’autre côté :
- Au-dessus de 500,
pos.xdevient -20 ; en dessous de -20, il devient 500. - Au-dessus de 380,
pos.ydevient -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()
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
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