How is collision testing done? 200 sprites tested against 200 sprites is a big difference from just testing 2-3 sprites against 200, in particular if you do the iteration in Python.
/P On 2009-03-01 (Sun) 08:51, Daniel Mateos wrote: > Hey again, > > In a 2d scroller game im making i seem to get FPS drops at random > points, i am using the Clock class to keep it at a constant 60 fps and > it never seems to go above 9%-15% cpu usage so im not sure what could be > causing it. > > Seems to run well for 90% of the time with spikes that drop the fps to > 10-40 at some points in the level, other times it runs fine at exactly > the same points and its not doing anything extra doing these spikes, im > bliting about 100-200 sprites per frame. > > Some quick profiler output, doesnt really tell me much tho: > > ncalls tottime percall cumtime percall filename:lineno(function) > 1233 10.177 0.008 10.177 0.008 {built-in method tick} > 1233 4.982 0.004 4.982 0.004 {pygame.display.flip} > 153699 3.211 0.000 3.211 0.000 {method 'blit' of > 'pygame.Surface' objects} > 542520 0.424 0.000 0.424 0.000 > game_level.py:129(CheckOnScreen) > 1233 0.419 0.000 3.889 0.003 game_level.py:56(RenderLevel) > 487287 0.312 0.000 0.419 0.000 > game_level.py:105(CheckCollide) > 1233 0.291 0.000 0.757 0.001 > game_level.py:122(CheckCollides) > 3615 0.160 0.000 0.160 0.000 {method 'render' of > 'pygame.font.Font' objects} > 1 0.150 0.150 0.150 0.150 {pygame.base.init} > 1 0.126 0.126 20.979 20.979 main.py:18(<module>) > 487287 0.107 0.000 0.107 0.000 {method 'colliderect' of > 'pygame.Rect' objects} > 1 0.093 0.093 0.121 0.121 {pygame.display.set_mode} > 493258/493031 0.048 0.000 0.048 0.000 {len} > 4 0.048 0.012 0.048 0.012 > {pygame.imageext.load_extended} > 1233 0.042 0.000 0.042 0.000 {pygame.event.poll} > 1233 0.040 0.000 0.096 0.000 game_osd.py:79(DrawBar) > 4 0.034 0.008 0.034 0.008 {method 'convert' of > 'pygame.Surface' objects} > 1233 0.033 0.000 0.805 0.001 game_level.py:44(update) > 1 0.017 0.017 0.125 0.125 __init__.py:25(<module>) > 1233 0.016 0.000 0.041 0.000 game_osd.py:106(WriteText) > > Any help or suggestions for better profileing/tracking down the lag > would be good :) > > -- > Daniel Mateos > http://daniel.mateos.cc