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.
Défi
FacileTermine ton jeu.
- Ajoute quelque chose qui se déplace tout seul.
- Affiche du texte à l’écran, comme un score ou un minuteur.
- 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()
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