[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Drawing Bullets



On Saturday 28 April 2007 01:28:38 am Kris Schnee wrote:
> Charles Christie wrote:
> > Well, bullets just seem to be a sticking point for me...
>
> Stick with it!
>
> > 1. bullet cleanup (self.kill, etc.) which isn't important to me right
> > now, as the demo won't be running for an extended period, and when it
> > does it'll be running on a monstrous beast of a computer that can
> > probably handle the crappy coding.
> > 2. Drawing bullets (pygame.update.dirtyrects, etc) which is VERY
> > important to me right now.
>
> I don't think you need a kill function. What I did in my shooter game
> was to have the bullets stored in two lists, and then every frame:
>
> self.player_bullets = [bullet for bullet in self.player_bullets if
> bullet.ttl > 0]
> self.enemy_bullets = [bullet for bullet in self.enemy_bullets if
> bullet.ttl > 0]
>
> This filtering gets rid of the ones whose time-to-live is expired, due
> to Python's automatic garbage-collection.
>
> > So, I tried to load an image for the bullets, and that didn't work
> > either. What happened was that it couldn't load the image... probably
> > because it doesn't exist. Which it does, though.
> >
> > It's in the project directory under the folder img/Bullet.png. When I
> > put img/Bullet.png into the load_image function it says it can't load
> > the image! I tried it with front and back slashes and it didn't work.
>
> Yeah, Python doesn't automatically handle path names. Try os.path.join,
> as in:
>
> import os
> filename = os.path.join("img","Bullet.png")
> my_image = pygame.image.load(filename).convert_alpha()
>
> As I understand it, os.path.join attaches the directory terms (any
> number of them) according to whatever format is appropriate for the OS.
>
> > After I get the image loaded, however, I can't add the bulletlist to my
> > list of dirtyrects to update... The dirtyrect doesn't read from lists!
> > How do I get pygame.sprite.RenderUpdates to display my bullets on the
> > screen?
>
> I haven't messed with dirty rectangle functions myself, so this one is
> beyond me.
>
> Kris

Woohoo! Thanks! I'll try this ASAP. Still need to figure out how to get the 
dirtyrects thing sorted out though...