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.
Défi
Facile- Écris une classe
Stardont__init__(self, x, y)stockeself.x,self.yetself.speed = 2. - Remplace les trois variables par
star = Star(320, 0). - Dans la boucle, utilise
star.y,star.speedetstar.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
1Charger des images
Charger une imageLa placer avec un rectangleDéplacer l’imageRépéter un arrière-planPixels transparents2Tourner, retourner, redimensionner
Faire pivoter autour du centreRegarder dans la direction du volRedimensionner une imagePivoter à partir de l’original5Collisions au pixel près
Les rectangles semblent injustesMasquesSprites au pixel prèsZones de collision circulaires3Les classes pour les objets du jeu
Votre première classeLes méthodesSelf est l’objetUne liste d’objetsDes objets avec des imagesUne sous-classe6Animation à partir de feuilles de sprites
Découper une feuille de spritesUn compteur de framesAnimer avec le tempsUne explosion à déclenchement uniqueEntraînez-vous par vous-même : Playground Pygame