Atteindre l’objectif
Fait partie de la section La boucle de jeu du Journey Pygame de Coddy. Leçon 8 sur 32.
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 à l’intérieur lorsque son côté gauche est à 420 ou plus et que son bord supérieur est à 300 ou plus. Les deux conditions doivent être vraies, alors relie-les avec and.
La victoire doit durer. Garde-la dans une variable qui commence par False et qui 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)aux coordonnées(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 La boucle de jeu
1Déplacer un carré
Ouvrir une fenêtreRemplir l’arrière-plan4Déplacement en fonction du temps
Temps deltaPixels par secondeVector2Accélération et frictionBoucler autour de l’écranEntraînez-vous par vous-même : Playground Pygame