Programm stürzt ab (Pygame)
Verfasst: Freitag 11. Januar 2019, 12:39
Hallo, ich arbeite an einem kleinen Programm, bei welchem man ein Muster gezeigt bekommt und dieses nachzeichnen soll. Ich komme gut voran und das Prinzip funktioniert. Als ich gerade dabei war, meinen Code zu überarbeiten, weil er zu unübersichtlich geworden ist, ist es plötzlich passiert, dass das Programm abstürtzt, sobald ich die Game Klasse aufrufe, im Startscreen funktioniert noch alles einwandfrei. Das komische ist allerdings, dass keine Fehlermeldung angezeigt wird, sondern Pygame keine Rückmeldung mehr gibt. Ich konnte den Fehlerbereich schon auf die Gameloop Funktion einschränken, aber mehr auch nicht. Ihr bracuth jetzt nicht den ganzen Code verstehen, sondern nur herausfinden, warum pygame abstürzt. Kann mir jemand helfen? Das ausführbare bzw nicht ausführbare Programm findet ihr unter https://www.file-upload.net/gal-259073/ogeyns/1.html. Vielen lieben Dank für jegliche Hilfe!
Code: Alles auswählen
def gameloop(self):
while self.playing:
self.input()
self.update()
self.draw()
def input(self):
if pygame.mouse.get_pressed()[0]:
self.mouseDown = True
for dot in self.all_dots:
if not dot.connected and pygame.sprite.collide_circle(self.mouse, dot):
if self.startDot is None:
self.startDot = dot
self.currentDot = dot
else:
self.lines_list.append((self.currentDot.rect.center, dot.rect.center))
dot.connected = True
self.currentDot = dot
else:
if self.mouseDown:
self.check()
if pygame.mouse.get_pressed()[1]:
self.playing = False
pygame.quit()
def update(self):
self.mouse.update_sprite()
self.all_dots.update()
def draw(self):
screen.fill(lightBlue)
self.all_dots.draw(screen)
if self.mouseDown and self.startDot is not None:
pygame.draw.line(screen, white, self.currentDot.rect.center, self.mouse.rect.center, 10)
for line in self.lines_list:
pygame.draw.line(screen, white, line[0], line[1], 10)
self.all_sprites.draw(screen)
pygame.display.flip()
def check(self):
if self.currentDot is self.startDot:
if self.startDot is not None:
self.startDot.connected = False
self.startDot = None
elif self.pattern.lines_list == self.lines_list:
self.playing = False
else:
pygame.quit()