Menu
CoddyTech

Terminez votre jeu

Leçon 41 sur 41 du cours Créer des jeux avec Pygame de Coddy.

Passons maintenant aux étapes 3 à 5 : un défi, une fin et du texte. Rock Dodge conserve ses rochers dans une liste de Rects : un nouveau rocher toutes les 400 ms, avec plusieurs rochers à l’écran en même temps.

rocks = []

# lors d'un événement du minuteur NEW_ROCK :
rocks.append(pygame.Rect(random.randint(0, 450), -30, 30, 30))

# à chaque image :
for rock in rocks:
    rock.y += 5
    if rock.colliderect(player):
        state = "lost"
rocks = [rock for rock in rocks if rock.top < 360]

La dernière ligne est une compréhension de liste : une nouvelle liste qui ne contient que les rochers encore à l’écran, afin que la liste ne grandisse pas indéfiniment.

Une chaîne state, "playing", "lost" ou "won", détermine ce que fait chaque image, comme dans Sky Runner. Et pygame.time.get_ticks() donne le nombre de millisecondes écoulées depuis le début du jeu, ce qui permet de créer un minuteur : survis 20 secondes pour gagner.

Ton jeu peut utiliser tout ce que tu as appris dans ce cours, et le parcours Pygame te fait découvrir d’autres éléments : sprites, images, son, menus, meilleurs scores et cartes.

Personnalise ton jeu : change les couleurs, les vitesses, les règles. Puis joue-y. S’il est trop difficile de gagner ou trop facile de perdre, modifie les nombres jusqu’à ce que le jeu soit amusant.

challenge icon

Défi

Facile

Termine ton jeu.

  1. Ajoute quelque chose qui se déplace tout seul.
  2. Affiche du texte à l’écran, comme un score ou un minuteur.
  3. Prévois une fin : une façon de gagner, une façon de perdre, ou les deux.

Appuie sur « Jouer » : quelque chose se déplace tout seul et ton texte s’affiche. Puis appuie sur « Vérifier ».

Essayez vous-même

import pygame

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

player = pygame.Rect(220, 320, 40, 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]:
        player.x -= 7
    if keys[pygame.K_RIGHT]:
        player.x += 7
    player.clamp_ip(screen.get_rect())

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 160, 255), player)
    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éer des jeux avec Pygame

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