2016-06-13 14 views
-1

Ich bin ein Anfänger in Python und mir ist nicht klar über die Funktion Surface.blit() -Methode. was tut es? wie es funktioniert? Ich bin über die folgenden Punkte gekommen, wie man es erstellt.Was ist die Funktion "surface.blit() in Python?" was tut es? wie es funktioniert?

  • Erstellen eine Leinwand von gewünschter Größe
  • eine Oberfläche von kleiner Größe erstellen, das Objekt enthält, angezeigt werden.
  • Definieren Sie den Rect-Wert der Oberfläche.
  • Blit (Überlappung) die Oberfläche, auf die Leinwand an der Position rect

Syntax: canvas.blit (surface, surfacerect)

rect warum nur verwendet wird, kann sie jede andere Form sein,

+0

vielleicht [die docs] (http://www.pygame.org/docs/ref/surface.html#pygame.Surface.blit) kann eine Hilfe sein – Hamms

+0

ich habe sie schon gelesen .... aber ich brauche eine einfache Erklärung ... –

+0

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

Antwort

2

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() 
+0

danke, das hat mein Konzept klar gemacht ... :-) –