Menu
CoddyTech

Votre première classe

Fait partie de la section Sprites et images du Journey Pygame de Coddy. Leçon 10 sur 36.

L’étoile se compose de trois variables : star_x, star_y et star_speed. Cela convient pour une seule étoile ; pour un ciel rempli d’étoiles, il faut un meilleur moyen de regrouper les nombres de chaque étoile.

Une classe est un plan pour un type d’objet. Chaque objet créé à partir de cette classe possède ses propres valeurs, appelées attributs :

class Star:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.speed = 2


star = Star(320, 0)

Star(320, 0) crée un nouvel objet Star. Python exécute alors __init__ sur cet objet, la fonction à l’intérieur de la classe qui initialise chaque nouvel objet (ce nom, avec deux traits de soulignement de chaque côté, est celui que Python recherche), avec x = 320 et y = 0. À l’intérieur, self désigne le nouvel objet, donc self.x = x y stocke 320. En dehors de la classe, tu accèdes à la même valeur avec star.x, et tu la modifies de la même manière : star.y += star.speed.

Les noms de classe commencent par une majuscule : Star est le plan, star est une étoile créée à partir de celui-ci.

challenge icon

Défi

Facile
  1. Écris une classe Star dont __init__(self, x, y) stocke self.x, self.y et self.speed = 2.
  2. Remplace les trois variables par star = Star(320, 0).
  3. Dans la boucle, utilise star.y, star.speed et star.x à la place des anciennes variables.

Essayez vous-même

import pygame

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

star_x = 320
star_y = 0
star_speed = 2

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

    star_y += star_speed
    if star_y > 480:
        star_y = 0

    screen.fill((20, 22, 40))
    pygame.draw.circle(screen, (255, 255, 255), (star_x, star_y), 4)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Toutes les leçons de Sprites et images

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