Menu
CoddyTech

Vrai ou faux

Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 14 sur 32.

True et False sont des valeurs à part entière, appelées booléens. Une variable peut en contenir une, comme un interrupteur :

lamp_on = False

Un if peut la tester directement : if lamp_on: s’exécute lorsqu’elle vaut True. not inverse sa valeur, donc lamp_on = not lamp_on allume ou éteint la lampe.

Un interrupteur a besoin d’une pression sur une touche, pas d’une touche maintenue. get_pressed() vaut True à chaque image où la touche est enfoncée, ce qui ferait basculer la lampe 60 fois par seconde. Une pression est détectée une seule fois sous la forme d’un événement KEYDOWN, dans la boucle d’événements située au début de la boucle de jeu :

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
        lamp_on = not lamp_on

La section 2 explique les événements en détail. Pour l’instant : event.type indique ce qui s’est passé et event.key, quelle touche a été pressée.

challenge icon

Défi

Moyen

Fais basculer la lampe avec la barre d’espace :

  1. Dans la partie d’initialisation, définis lamp_on = False.
  2. Dans la boucle d’événements, lorsqu’un événement KEYDOWN pour K_SPACE arrive, définis lamp_on = not lamp_on.
  3. Dessine la lumière en (320, 290), avec un rayon de 30 : (255, 220, 100) lorsque lamp_on est True, sinon (70, 70, 90).

Essayez vous-même

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Préparez les éléments ici, avant la boucle de jeu.

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Modifiez les éléments ici, une fois par image.

    screen.fill((20, 24, 48))
    # Dessinez ici, après le remplissage.
    pygame.draw.rect(screen, (90, 90, 110), (310, 300, 20, 180))
    pygame.draw.circle(screen, (70, 70, 90), (320, 290), 30)

    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 Python dans une fenêtre de jeu

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