Methoden
Teil des Abschnitts Sprites und Bilder der Pygame-Journey von Coddy. Lektion 11 von 36.
Die Zahlen des Sterns befinden sich jetzt in der Klasse, aber die Regeln dafür, wie er fällt und gezeichnet wird, stehen immer noch in der Schleife. Funktionen, die innerhalb einer Klasse geschrieben werden, sind Methoden, und sie bringen die Regeln und die Daten zusammen:
class Star:
# __init__ wie zuvor
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)Der erste Parameter jeder Methode ist self, das Objekt, auf dem sie ausgeführt wird. Du rufst eine Methode für ein Objekt mit einem Punkt auf, und pygame's Surface wird wie jedes andere Argument übergeben:
star.update()
star.draw(screen)Die Hauptschleife beschreibt jetzt, was in einem Frame passiert: Aktualisiere den Stern und zeichne ihn dann. Spielobjekte in pygame-Programmen haben fast immer diese beiden Methoden: update und draw.
Aufgabe
Mittel- Füge
Stareine Methodeupdate(self)hinzu: Sie addiertself.speedzuself.yund setzt den Stern wieder aufy = 0, sobaldself.ygrößer als 480 ist. - Füge
draw(self, screen)hinzu: den weißen Kreis mit Radius 4 bei(self.x, self.y). - Rufe in der Schleife
star.update()und nach dem Füllenstar.draw(screen)auf.
Probier es selbst
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()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Sprites und Bilder
1Bilder laden
Ein Bild ladenMit einem Rect platzierenDas Bild bewegenEinen Hintergrund kachelnTransparente Pixel2Drehen, Spiegeln, Skalieren
Um den Mittelpunkt drehenIn Flugrichtung ausrichtenEin Bild skalierenVom Original aus drehen3Klassen für Spielobjekte
Deine erste KlasseMethodenSelf ist das ObjektEine Liste von ObjektenObjekte mit BildernEine Unterklasse6Animation mit Sprite Sheets
Ein Sprite Sheet zuschneidenEin Frame-ZählerMit Zeit animierenEine einmalige ExplosionÜbe selbstständig: Pygame-Playground