Les méthodes
Fait partie de la section Sprites et images du Journey Pygame de Coddy. Leçon 11 sur 36.
Les nombres de l’étoile se trouvent maintenant dans la classe, mais les règles qui les régissent, sa façon de tomber et d’être dessinée, sont encore dans la boucle. Les fonctions écrites à l’intérieur d’une classe sont des méthodes, et elles placent les règles à côté des données :
class Star:
# __init__ comme précédemment
def update(self):
self.y += self.speed
if self.y > 480:
self.y = 0
def draw(self, screen):
pygame.draw.circle(screen, (255, 255, 255), (self.x, self.y), 4)Le premier paramètre de chaque méthode est self, l’objet sur lequel elle agit. On appelle une méthode sur un objet à l’aide d’un point, et la Surface de pygame est transmise comme n’importe quel autre argument :
star.update()
star.draw(screen)La boucle principale décrit maintenant ce qui se passe à chaque image : mettre à jour l’étoile, puis la dessiner. Dans les programmes pygame, les objets de jeu possèdent presque toujours ces deux méthodes, update et draw.
Défi
Moyen- Ajoute une méthode
update(self)àStar: elle ajouteself.speedàself.yet replace l’étoile ày = 0dès queself.ydépasse 480. - Ajoute
draw(self, screen): le cercle blanc de rayon 4, à(self.x, self.y). - Dans la boucle, appelle
star.update()et, après le remplissage,star.draw(screen).
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()
class Star:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 2
star = Star(320, 0)
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()
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
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