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.
Défi
Facile- Avant la boucle, définis
won = False. - Après avoir limité
xety, définiswon = Truelorsquex >= 420ety >= 300. - Remplis l’écran avec
(40, 110, 70)lorsquewonest vrai, et avec(30, 30, 46)sinon. - 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()
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
1La boucle de jeu
Ouvrir une fenêtreRemplir l’arrière-planEntraînez-vous par vous-même : Playground Pygame