Des chutes aléatoires
Fait partie de la section La boucle de jeu du Journey Pygame de Coddy. Leçon 25 sur 32.
Lorsque le bloc tombe au-delà du bas, replace-le au-dessus du haut pour qu’il retombe. Son bord supérieur dépasse le bas lorsque block.top > 360.
Pour rendre le jeu moins prévisible, fais-le tomber à un endroit aléatoire. Le module random de Python choisit des nombres : random.randint(0, 460) est un nombre entier compris entre 0 et 460, bornes incluses.
import random
if block.top > 360:
block.y = -20
block.x = random.randint(0, 460)Pourquoi 460 ? Le bloc fait 20 de large, donc une valeur de x égale à 460 place son bord droit au bord de la fenêtre. Et y = -20 le place juste au-dessus de la fenêtre, pour qu’il apparaisse par le haut.
Défi
Facile- Ajoutez
import randomen haut. - Après la chute du bloc, lorsque
block.top > 360, définissezblock.y = -20etblock.xsurrandom.randint(0, 460).
Essayez vous-même
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Catch the Blocks")
clock = pygame.time.Clock()
basket = pygame.Rect(200, 330, 80, 16)
block = pygame.Rect(220, 0, 20, 20)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
basket.x -= 8
if keys[pygame.K_RIGHT]:
basket.x += 8
basket.clamp_ip(screen.get_rect())
block.y += 3
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 160, 255), basket)
pygame.draw.rect(screen, (235, 80, 80), block)
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’écran2Formes et couleurs
Cercles, lignes et polygonesContours et anglesUne scène de formesDes couleurs qui changent5Attrape les blocs
Le panierUn bloc qui tombeEntraînez-vous par vous-même : Playground Pygame