1) I remember out of view draws slowing my fps very little. As i zoomed out
so more was in view, my fps slowed quite a bit. Have you verified that off
screen draws are significantly impacting your performance?
2) you should profile your code.
python -m cProfile -s cumtime yourscipt.py > profile1.txt
Pipes the profiling information sorted by cumulative time into a plain text
file on linux.
Elliot
On Apr 27, 2016 8:25 PM, "ZOnline" <[email protected]> wrote:
> I searched previously and found a thread on culling off screen sprites for
> better performance. In the end, the guy suggested to simply set a sprites
> visible flag.
>
> However, I have tried this and the performance is abysmal, making the game
> unplayable.
>
> Here is my code:
>
> class TileLayer(object):
> def __init__(self):
> self.group = pyglet.graphics.Group()
> self.batch = pyglet.graphics.Batch()
> self.sprites = []
> self.cache = {}
>
> def setInViewSprites(self):
> """ Called everytime the camera bounds change, cache which
> sprites are in view and not in view, then change visibility """
> bounds = viewService.getScreenBounds()
>
> if not bounds in self.cache:
> inViewSprites = []
>
> for sprite in viewService.collideView(self.sprites):
> inViewSprites.append(sprite)
>
> self.cache[bounds] = inViewSprites
>
> for sprite in self.sprites:
> if not sprite in self.cache[bounds]:
> if sprite.visible == True:
> sprite.visible = False
> else:
> if sprite.visible == False:
> sprite.visible = True
>
>
> This seems super inefficient to me, but I can't think of any other way. In
> another library I could simply just keep a list of sprites in and out of
> view, and pass the list to the renderer for easy and quick removal of
> sprites.
>
> However because of batching and groups, this doesn't seem possible. Any
> suggestions?
>
> --
> You received this message because you are subscribed to the Google Groups
> "pyglet-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/pyglet-users.
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"pyglet-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/pyglet-users.
For more options, visit https://groups.google.com/d/optout.