surface.blit() Funktion in Pygame

Maxim Maeder 15 Februar 2024
  1. die Funktion surface.blit() in Pygame
  2. Verwenden Sie die Funktion surface.blit() in Pygame
surface.blit() Funktion in Pygame

Dieses Tutorial zeigt Ihnen, was die Funktion blit() in Pygame macht.

Der hier angezeigte Code ist nicht der vollständige Code für ein gültiges Pygame-Fenster. Wenn Sie an einem Bare-Bones-Framework interessiert sind, lesen Sie diesen Artikel.

die Funktion surface.blit() in Pygame

Pygame dreht sich um Flächen, und die Funktion blit() überlappt diese Flächen. Das prominenteste Beispiel dafür wäre unser Bildschirm, der im Wesentlichen nur eine Oberfläche ist, und wir leuchten alle Dinge, die wir sehen, darauf.

Wir können aber auch andere Flächen erzeugen und diese mit blit() überlagern. Bevor wir dies tun, werden wir die verschiedenen Argumente erläutern, die wir an diese Methode übergeben können.

Später sehen wir uns ein konkretes Beispiel an, konzentrieren uns aber vorerst auf die Funktion.

Unten sehen Sie die Struktur der Methode blit(). Denken Sie daran, dass dieser Code nicht funktioniert, da wir die Oberflächen nicht eingerichtet haben.

Wir rufen die Funktion blit() auf einer Oberfläche auf und beginnen mit der Bereitstellung der überlagerten Oberfläche. Dann legen wir fest, wo oben links von surfaceTwo auf surfaceOne sein wird.

Wir könnten es hier beenden, und blit() würde funktionieren, aber wir können zwei weitere Argumente übergeben. Die Fläche ist ein rect, das die Fläche von surfaceTwo darstellt, die geblittet wird.

Mit nur einem Teil davon und den special_flags können wir also den Mischmodus des Blits definieren.

Code-Auszug:

surfaceOne.blit(surfaceTwo, destination, area=none, special_flags=none)

Verwenden Sie die Funktion surface.blit() in Pygame

Nun schauen wir uns ein konkretes Beispiel an. Beginnen wir damit, einige Oberflächen zu erstellen; Denken Sie daran, dass sich dieser Code vor der Hauptschleife befindet.

Wir können neue Oberflächen mit der Methode Surface() erstellen, bei der wir die gewünschten Abmessungen angeben müssen. Wir füllen auch beide Flächen mit einer Farbe, um sie später zu sehen.

In den letzten fünf Zeilen des Codes sehen Sie die Funktion blit() in Aktion.

Code-Auszug:

surfaceOne = pygame.Surface((100, 100))
surfaceOne.fill(
    (
        200,
        100,
        100,
    )
)

surfaceTwo = pygame.Surface((30, 30))
surfaceTwo.fill(
    (
        100,
        200,
        100,
    )
)

surfaceOne.blit(surfaceTwo, [10, 10], [0, 0, 10, 5])

Jetzt brauchen wir nur noch surfaceOne auf den Bildschirm zu blitten und schon sehen wir das Ergebnis. Dieser Code passiert in der Hauptschleife.

screen.blit(surfaceOne, [10, 10])

Ausgang:

Blit-Funktion in Pygame

Vollständiger Beispielcode

# Imports
import sys
import pygame

# Configuration
pygame.init()
fps = 60
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height), pygame.RESIZABLE)

surfaceOne = pygame.Surface((100, 100))
surfaceOne.fill(
    (
        200,
        100,
        100,
    )
)

surfaceTwo = pygame.Surface((30, 30))
surfaceTwo.fill(
    (
        100,
        200,
        100,
    )
)

surfaceOne.blit(surfaceTwo, [10, 10], [0, 0, 10, 5])

# Game loop.
while True:
    screen.fill((20, 20, 20))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    screen.blit(surfaceOne, [10, 10])

    pygame.display.flip()
    fpsClock.tick(fps)
Maxim Maeder avatar Maxim Maeder avatar

Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.

GitHub

Verwandter Artikel - Pygame Function