diese Putting real helfen kann, obwohl so einfach wie möglich setzen ->blitting zeichnet
Wenn man durch jeden der Schritte, die Sie erwähnt haben:
- Erstellen Sie eine Leinwand mit einer gewünschten Größe
Das ist unser Fenster, durch screen = pygame.display.set_mode((width,height))
erstellt. Wobei screen
der Zeichenbereichsname ist. Irgendwann wird alles auf diese Leinwand gezeichnet werden müssen, damit wir es sehen können.
- Erstellen Sie eine Oberfläche von kleiner Größe mit dem Objekt
angezeigt werden
Dies ist eine Fläche, die wir mit Gegenständen wie Bilder bevölkern werden. Es muss nicht kleiner als die Fenstergröße sein und kann frei herum bewegt werden.
- einen Rect Wert der
Oberfläche definieren
Wenn Sie eine Oberfläche mit so etwas wie background = pygame.Surface((width,height))
erstellen geben Sie es Größe. Die Bilder oder gezeichneten Objekte auf der Oberfläche können eine beliebige Form oder Größe haben, aber sie müssen alle innerhalb der durch diese Breite und Höhe festgelegten Grenzen enthalten sein.
- Blit (Überlappung) die Oberfläche auf der Leinwand an der rect Position
die nun alle wichtigen Bit. Wir müssen diese Oberfläche (Hintergrund) erhalten und auf das Fenster zeichnen. Um dies zu tun, rufen wir screen.blit(background,(x,y))
auf, wobei (x, y) die Position innerhalb des Fensters ist, an der wir die obere linke Seite der Oberfläche haben wollen. Diese Funktion sagt, nimm die Hintergrundoberfläche und zeichne sie auf den Bildschirm und positioniere sie bei (x, y).
Ein einfaches Beispiel:
import pygame
pygame.init()
#### Create a canvas on which to display everything ####
window = (400,400)
screen = pygame.display.set_mode(window)
#### Create a canvas on which to display everything ####
#### Create a surface with the same size as the window ####
background = pygame.Surface(window)
#### Create a surface with the same size as the window ####
#### Populate the surface with objects to be displayed ####
pygame.draw.rect(background,(0,255,255),(20,20,40,40))
pygame.draw.rect(background,(255,0,255),(120,120,50,50))
#### Populate the surface with objects to be displayed ####
#### Blit the surface onto the canvas ####
screen.blit(background,(0,0))
#### Blit the surface onto the canvas ####
#### Update the the display and wait ####
pygame.display.flip()
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
#### Update the the display and wait ####
pygame.quit()
vielleicht [die docs] (http://www.pygame.org/docs/ref/surface.html#pygame.Surface.blit) kann eine Hilfe sein – Hamms
ich habe sie schon gelesen .... aber ich brauche eine einfache Erklärung ... –
Aufruf 'canvas.blit (Oberfläche, floaterectrect)' wird "Oberfläche" auf "Leinwand" an der Position zeichnen angezeigt durch die obere linke Ecke von 'floaterrect'. Was ist deine spezifische Frage? – Hamms