Ich muss ungefähr 200 Bilder in Pygame laden, um an verschiedenen Stellen in meinem Spiel geblitzt zu werden. Ich habe versucht, eine Funktion dafür zu schreiben, kam aber immer wieder mit NameError: name 'tomato' is not defined
zurück.Wie lade ich mehrere Bilder in PyGame?
Alle Bildnamen sind das, was die Variable des geladenen Bildes unter gespeichert ist: tomato = pygame.image.load("tomato.png")
wäre besser ein Array verwenden, wenn ja, wie ich das tun würde?
Der Code:
def load(image):
imagename = image
imagetitle = str(imagename)+".png"
image = pygame.image.load(imagetitle)
return image
load("tomato")
def blit_f(fruit):
gamedisplay.blit(fruit,(0,0))
pygame.display.update()
fruitlist = []
running = False
while not running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = True
if event.type == pygame.MOUSEMOTION:
mouse = pygame.mouse.get_pos()
color = screen.get_at(mouse)
if color == (209,0,0,255):
blit_f(tomato)
fruitlist.insert(0,"tomato")
if event.type == pygame.MOUSEBUTTONDOWN:
if fruitlist[0] == "tomato":
gamedisplay.blit(tomato,(0,0))
pygame.display.update()
Der Nameerror tritt nur, wenn die Bedingung zum blitting von tomato.png
führenden erfüllt ist: wenn ich über das Bild Tomate dh Farbe
Wenn ich load(tomato)
stattdessen schreiben von mit ""
, NameError kommt auf, sobald ich den Code ausführen, und markiert load(tomato)
anstelle von gamedisplay.blit(tomato)
wie mit load("tomato")
.
wo Ihr Code zeigt, dass Sie versuchen, Tomate zu verwenden, bevor es zu definieren? – Drako
überprüfen Reihenfolge der Vorgänge in Ihrem Code – Drako
Bearbeiten Sie Ihre ursprüngliche Frage mit dem Code, den Sie verwenden, um diesen Fehler zu verursachen @ I.Kaur –