Un bloc qui tombe
Fait partie de la section La boucle de jeu du Journey Pygame de Coddy. Leçon 24 sur 32.
Un objet qui tombe est un objet dont la coordonnée y augmente à chaque image. Faites aussi du bloc un Rect, puis augmentez sa coordonnée y à chaque itération de la boucle :
block = pygame.Rect(220, 0, 20, 20)
while running:
# événements et touches
block.y += 3
# remplir, dessinerÀ 60 images par seconde, 3 pixels par image correspondent à 180 pixels par seconde. La fenêtre fait 360 pixels de haut, le bloc met donc deux secondes à atteindre le bas.
Ce jeu se déplace image par image, comme dans Move a Square, et non en fonction de dt. Un Rect ne conserve que des nombres entiers, donc un déplacement de 0.6 pixel, par exemple, serait arrondi à 0 et le Rect ne bougerait jamais. Les jeux qui déplacent des Rect en fonction du temps conservent la position dans un Vector2 et la copient dans le Rect.
Le bloc continue de tomber après avoir quitté la fenêtre. Rien ne l’arrête pour l’instant ; la leçon suivante le fera revenir.
Défi
Facile- Sous le panier, crée
block = pygame.Rect(220, 0, 20, 20). - Dans la boucle, après le déplacement du panier, ajoute 3 à
block.y. - Dessine le bloc en rouge
(235, 80, 80)après le panier.
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)
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())
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 160, 255), basket)
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