Menu
CoddyTech

Atteindre l’objectif

Leçon 8 sur 40 du cours Créez des jeux avec Pygame de Coddy.

Un jeu a besoin d’un objectif. Dessine un carré vert dans le coin inférieur droit et, lorsque le carré du joueur entre dedans, le joueur gagne.

L’objectif se trouve en (420, 300) et mesure 60 sur 60. Le carré du joueur est dedans lorsque son côté gauche est à 420 ou plus et que son côté supérieur est à 300 ou plus. Les deux conditions doivent être vraies, alors relie-les avec and.

La victoire doit durer. Stocke-la dans une variable qui commence par False et ne devient que True :

won = False

while running:
    # déplacer le carré
    if x >= 420 and y >= 300:
        won = True
    if won:
        screen.fill((40, 110, 70))
    else:
        screen.fill((30, 30, 46))

Une fois que won vaut True, rien ne lui attribue à nouveau une autre valeur : l’arrière-plan reste donc vert même si le carré quitte l’objectif.

challenge icon

Défi

Facile
  1. Avant la boucle, définis won = False.
  2. Après avoir limité x et y, définis won = True lorsque x >= 420 et y >= 300.
  3. Remplis l’écran avec (40, 110, 70) lorsque won est vrai, et avec (30, 30, 46) sinon.
  4. Avant le carré du joueur, dessine l’objectif : en vert (60, 200, 120) à (420, 300, 60, 60).

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

    x = max(0, min(x, 480 - 40))
    y = max(0, min(y, 360 - 40))

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
    pygame.display.flip()
    clock.tick(60)

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 Créez des jeux avec Pygame

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