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?
Antwort
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!
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.
- 1. PyGame - Ich kann nicht eine Oberfläche auf eine andere übertragen
- 2. Pygame - Oberfläche als Bild speichern
- 3. Aktualisieren Sie eine Oberfläche in Pygame
- 4. Anzeige cv2.VideoCapture Bild in Pygame Oberfläche
- 5. Set pygame Oberfläche DPI
- 6. Pygame - Glatte Transformation von Bild/Oberfläche
- 7. Pygame - "Fehler: Anzeige Oberfläche quit"
- 8. Wie blit ich ein PNG mit etwas Transparenz auf eine Oberfläche in Pygame?
- 9. Eine Oberfläche korrekt erstellen
- 10. Wie man numpy array in pygame Oberfläche präsentiert?
- 11. Pygame - Ist es möglich, alles in einer Oberfläche zu erstellen und auf die Oberfläche zu skalieren?
- 12. Ich versuche eine flache Oberfläche auf WEBGL
- 13. Wie zeichne ich eine Oberfläche in Matlab mit drei Vektoren?
- 14. Zeichnen Sie eine android.media.Image auf eine Oberfläche
- 15. Wie texturiere ich eine Karte auf eine gekrümmte Oberfläche?
- 16. Wie erstelle ich eine Pygame-Oberfläche aus einem numply Array von float32?
- 17. Python/Pygame - Wie blitze ich verschiedene Transparenzen auf eine unsichtbare Oberfläche
- 18. java.lang.IllegalArgumentException: Oberfläche hatte keine gültige native Oberfläche
- 19. Pygame: Ist es besser, ein Bild mehrmals zu laden oder eine Oberfläche im Speicher zu behalten?
- 20. Wie zeichne ich eine transparente Oberfläche mit SharpDX?
- 21. Wie man eine Oberfläche mit einem transparenten Hintergrund in pygame macht
- 22. So konvertieren Sie eine SDL1-Oberfläche in eine OpenCV-Matte
- 23. Set Colorbar Bereich für eine MLab Oberfläche
- 24. Wie man eine 3D-Oberfläche in Matplotlib dreht
- 25. Ein Bild auf einer Oberfläche anzeigen
- 26. Berechnen der Schattierung durch eine transparente Oberfläche
- 27. Text auf die Oberfläche der Oberfläche schreiben SceneKit?
- 28. Rendering NURBS-Oberfläche in WebGL
- 29. 3D Oberfläche Colormap in Python
- 30. SDL_LoadBMP() zeigt eine schwarze Oberfläche an, während die Oberfläche referenziert wird
Was genau versuchen Sie zu tun? – skrx
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. –