2017-08-08 4 views
0

Wie kann ich ein Bild in ein anderes Bild in Pygame konvertieren, ohne die Sprite-Klasse zu verwenden? Wie kann ich das vorherige Bild entfernen, nachdem ich es in ein anderes umgewandelt habe?Wie konvertiere ich eine Oberfläche (Bild) in eine andere Oberfläche in Pygame?

+0

Was genau versuchen Sie zu tun? – skrx

+0

Was meinen Sie mit der Umwandlung einer Oberfläche in eine andere Oberfläche? Zu einem neuen Format wechseln? Können Sie uns ein Beispiel im Code dessen zeigen, was Sie versucht haben, und es könnte klarer sein. –

Antwort

0

Ich habe heute ein kleines Programm geschrieben, das zeigt, wie ich ein Objektbild umschalte (es kann helfen/beantworte deine Frage). Es hat Hinweise für die meisten Code-Verwendung, so dass es einfacher zu verstehen ist, wie und warum es funktioniert (nach allem, was ich weiß, könnte jeder gestern Programmierung begonnen haben).

, Auf jeden Fall hier ist der Code:

import pygame, sys 

#initializes pygame 
pygame.init() 

#sets pygame display width and height 
screen = pygame.display.set_mode((600, 600)) 

#loads images 
background = pygame.image.load("background.png").convert_alpha() 

firstImage = pygame.image.load("firstImage.png").convert_alpha() 

secondImage = pygame.image.load("secondImage.png").convert_alpha() 

#object 
class Player: 
    def __init__(self): 

     #add images to the object 
     self.image1 = firstImage 
     self.image2 = secondImage 

#instance of Player 
p = Player() 

#variable for the image switch 
image = 1 

#x and y coords for the images 
x = 150 
y = 150 

#main program loop 
while True: 

    #places background 
    screen.blit(background, (0, 0)) 

    #places the image selected 
    if image == 1: 
     screen.blit(p.image1, (x, y)) 
    elif image == 2: 
     screen.blit(p.image2, (x, y)) 

    #checks if you do something 
    for event in pygame.event.get(): 

     #checks if that something you do is press a button 
     if event.type == pygame.KEYDOWN: 

      #quits program when escape key pressed 
      if event.key == pygame.K_ESCAPE: 
       sys.exit() 

      #checks if down arrow pressed 
      if event.key == pygame.K_DOWN: 

       #checks which image is active 
       if image == 1: 

        #switches to image not active 
        image = 2 

       elif image == 2: 

        image = 1 

    #updates the screen 
    pygame.display.update() 

Ich bin nicht sicher, wie Ihr Code eingerichtet ist, oder wenn das ist, was Sie brauchen (Ich verstehe nicht ganz Klassen entweder so könnte es ein Sprite sein Klasse), aber ich hoffe, das hilft!

0

Konvertieren von einem Bild zum anderen ist so einfach wie die Neuzuweisung der variable

firstImage = pygame.image.load("firstImage.png") 
secondImage = pygame.image.load("secondImage.png") 

firstImage = secondImage 

del secondImage 

Ich bin nicht sicher, was genau meinen Sie das Bild zu entfernen. Sie könnten "del secondImage" verwenden, um den Verweis in Ihrem Code zu löschen und ihn an die Garbage Collection zu senden. Sobald Sie den Bildschirm leeren und das aktualisierte Bild aktualisieren, sollte das veraltete Bild nicht länger sichtbar sein.

Verwandte Themen