Seite 1 von 1

Pygame Problem Sprites

Verfasst: Montag 1. Oktober 2018, 13:01
von FroxGame
Liebe Forum-User,
ich habe ein Buch mit dem ich Python lerne. Ich habe aus dem Buch einen Code ausprobiert, aber der funktioniert bei mir nicht, weil irgendein Element unendlich oft aufgerufen wird.

Code: Alles auswählen

import pygame,sys

#Definiert die Unterklasse für das Bild(in dem Fall den Ball)
class mein_ball(pygame.sprite.Sprite):
    def _init_(self,bild_datei,ort):
        pygame.sprite.Sprite._init_(self)           
        self.image = pygame.image.load(bild_datei)      
        self.rect = self.image.get_rect()
        self.rect.left, self.rect.top = ort

#Stellt die Fenstergröße ein
groesse = breite, hoehe = 640,480
screen = pygame.display.set_mode(groesse)   

screen.fill([255,255,255])
bild_datei = "wasserball.png"
baelle = []
for zeile in range(3):
    for spalte in range(3):
        ort = [spalte * 180 + 10,zeile * 180 +10]
        ball = mein_ball(bild_datei,ort)
        #Setzt den Ball auf die Liste
        baelle.append(ball)                             
for ball in baelle:
    screen.blit(ball.image, ball.rect)
pygame.display.flip()
        
    
active = True
while active:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            active = False
pygame.quit()
Das ist der Code. und hier ist der Fehler:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Python36\pygame_baelle.py", line 21, in <module>
    ball = mein_ball(bild_datei,ort)
  File "C:\Python36\lib\site-packages\pygame\sprite.py", line 124, in __init__
    self.add(*groups)
  File "C:\Python36\lib\site-packages\pygame\sprite.py", line 142, in add
    self.add(*group)
  File "C:\Python36\lib\site-packages\pygame\sprite.py", line 142, in add
    self.add(*group)
  File "C:\Python36\lib\site-packages\pygame\sprite.py", line 142, in add
    self.add(*group)
  [Previous line repeated 326 more times]
RecursionError: maximum recursion depth exceeded while calling a Python object
Kennt sich damit jemand aus? Vielen Dank für Hilfe

Re: Pygame Problem Sprites

Verfasst: Montag 1. Oktober 2018, 14:43
von __blackjack__
@FroxGame: `__init__()` braucht *zwei* Unterstriche am Anfang und am Ende, nicht nur *einen*.

Re: Pygame Problem Sprites

Verfasst: Montag 1. Oktober 2018, 16:40
von snafu
Und bei der Fehlermeldung sind die zwei Unterstriche plötzlich vorhanden, wobei der Schritt zu Sprite.__init__() auch nicht aus dem Traceback hervorgeht. Es ist also offensichtlich nicht der Code, der tatsächlich zu dem Fehler führt und das ist dadurch nicht gerade hilfreich...

@FroxGame:
Wenn du den Originalcode nicht zeigen willst, dann ist das schon okay. Aber dann doch bitte eine abgewandelte Form, die den Fehler wirklich wirft und bitte mit der kompletten Original-Fehlermeldung.

Re: Pygame Problem Sprites

Verfasst: Montag 1. Oktober 2018, 17:43
von Sirius3
@snafu: das hat schon seine Richtigkeit. Das im Traceback auftauchende __init__ ist das von `pygame/sprite.py`, und der Fehler tritt auf, weil mein_ball andere Parameter bekommt als Sprite.

Re: Pygame Problem Sprites

Verfasst: Dienstag 2. Oktober 2018, 17:07
von FroxGame
Danke für die Hilfe, habe die zwei Unterstriche im Buch nicht gesehen.