pygame code verbessern
Verfasst: Montag 28. Juni 2021, 09:52
Ich habe mir eine Methode geschrieben mit der ich meine Sprites und Animationen lade. Mein Problem ist jetzt, das diese Methode nach einem Mausklick ausgeführt wird um mein Spielfeld neu anzuzeigen ( liegt also in der Hauptschleife des Spiels ). Dabei werden die Spites ja immer neu von der Platte geladen dadurch harkt das Spiel ein klein wenig. Zwar nur ganz minimal aber man merkt es eben. Jetzt stehe ich auf dem Schlauch, die Sache ein wenig eleganter zu lösen. Ich habe schon versucht, die Spites unter __init__ einmal zu laden, sprich:
und dann einfach zu ersetzen in der Methode:
es wird dann auch nicht gemeckert, allerdings fehlen mir dann Sprites. sind einfach nicht zu sehen und das Spiel, spielt auch ein wenig verrückt. Kann mir dabei jemand nen Tip geben?
Achja, die Methode self.setFields ist dann dafür da um die Sprites mittig auf den Bildschirm zu setzen.
Code: Alles auswählen
self.diagreen = sprites('gfx/sprites/diagreen.json', 'gfx/sprites/diagreen.png')
Code: Alles auswählen
self.spritemap.append(self.diagreen)
Achja, die Methode self.setFields ist dann dafür da um die Sprites mittig auf den Bildschirm zu setzen.
Code: Alles auswählen
#
# Alle Sprites laden ( in richtiger Reihenfolge )
#
def makePlayfield(self):
self.spritemap = []
for i in range(len(self.playmap)):
if self.playmap[i] == 0:
self.spritemap.append(sprites('gfx/sprites/diagreen.json', 'gfx/sprites/diagreen.png'))
if self.playmap[i] == 1:
self.spritemap.append(sprites('gfx/sprites/diayellow.json', 'gfx/sprites/diayellow.png'))
if self.playmap[i] == 2:
self.spritemap.append(sprites('gfx/sprites/diared.json', 'gfx/sprites/diared.png'))
self.setFields()