Seite 1 von 1

Warum hab ich seltsame "Pausen" in Pygame (>400

Verfasst: Sonntag 24. Januar 2010, 23:09
von HorstJENS
Hi Pygame-Gurus,
weiß jemand was ich hier falsch gemacht habe ? Es schaut so aus wie eine Garbage-Collection, hat es mit dem kopieren der sprite-group zu tun ?


Problem:
Sobald viele Sprites im Spiel sind (linke Maustaste mehrmals drücken) kommt es manchmal (nach ca. 20 Sekunden) zu einem extrem langen Intervall zwischen 2 mainloop-Durchgängen. Siehe Wert für max (von Millisekunden zwischen 2 Frames) in der Titelleiste. Der Wert sollte so um 30 millisekunden liegen, erreicht manchmal Werte von >300. Siehe auch die nach oben laufende grünen Balken (1 lila Querstrich entspricht 10 Millisekunden).


http://www.spielend-programmieren.at/wi ... eitproblem

gelöst

Verfasst: Montag 25. Januar 2010, 17:03
von HorstJENS
gelöst dank Gumm aus der pygame-mailingliste.

Lösung:

Code: Alles auswählen

    #pygame.sprite.groupcollide(group1, group2, dokill1, dokill2): 
    #return  Sprite_dict
    collisions = pygame.sprite.groupcollide(birdgroup, birdgroup, False, False)
    for bird in collisions.keys():
        for crashbird in collisions[bird]:
            if bird is not crashbird:
                bird.crashing = True
                bird.dx -= crashbird.pos[0] - bird.pos[0]
                bird.dy -= crashbird.pos[1] - bird.pos[1]