2017-12-21 4 views
1

Ich versuche gerade einen Teil eines bereits gezeichneten Bildes wieder zu blittieren. Dazu lese ich kann den optionalen dritten Bereich Parameter bei der Verwendung von Blit verwenden. Ich weiß nicht warum, aber dieser Parameter wirkt komisch für mich.Pygame Blit Bereich Parameter?

Von dem, was ich verstehe, ist der Bereich Parameter (pos_x, pos_y, Breite, Höhe).

Mein Bildschirm ist 1280x1024, also wenn ich den Teil haben möchte, den ich in der Mitte neu zeichnen möchte, würde ich etwas wie (640, 512, 200, 200) übergeben und ein 200x200 Teil des Bildes sollte beginnend gezeichnet werden aus dem Zentrum.

Für mich wird das Bild jedoch immer oben links gezeichnet, und die ersten beiden Zahlen im Bereichsparameter ändern die Helligkeit des zu zeichnenden Teils.

Mein Code:

image = pygame.image.load("image.jpg") 
image = pygame.transform.scale(image, (self.display.get_width(), self.display.get_height())) 
self.display.blit(image, (0,0)) 
# Drawing something here which has to be overwritten, but cannot redraw everything. 
self.display.blit(image, (0,0), (640,512,200,200)) 

Der zweite blit gerade zeichnet ein 200x200 Bild oben links von meinem Bildschirm, die heller als das erste Mal ist, das Bild gezeichnet wird.

Mit freundlichen Grüßen

Antwort

1

Sie (0, 0) als blit Ziel (das zweite Argument) vorbei, so dass Ihre Oberfläche in der oberen linken Ecke des Displays angezeigt wird. Wenn Sie es an anderer Stelle ziehen wollen, zum Beispiel bei (200, 300) müssen Sie diese Koordinaten als zweites Argument übergeben:

self.display.blit(image, (200, 300), (640,512,200,200)) 
+1

Ah danke Ihnen, so dass nur der Bereich Parameter definiert, welcher Teil des Bildes zu ziehen, um die Position nach wie vor muss geändert werden. Das war mir vor deiner Antwort nicht klar. Vielen Dank! – Julian