[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [pygame] I can't seem to find any simple sprite animation game examples on the pygame.org site
Hey guys just wondering, do you think a bullet animation would be hard?
On 9/12/07, Lamonte Harris <pyth0nc0d3r@xxxxxxxxx
> wrote::) yuo need to finish your collision tutorial.
On 9/12/07, DR0ID <dr0id@xxxxxxxxxx> wrote:
http://dr0id.homepage.bluewin.ch/pygame_tutorial04.html
~DR0ID
Casey Duncan schrieb:
>
> On Sep 11, 2007, at 9:00 PM, Ian Mallett wrote:
>
>> Opps. That's:
>>
>> if frame_number%10 == 0: #frame_number is a multiple of ten
>> #draw frame 1
>> elif frame_number%9 == 0: #frame_number ends in 9
>> #draw frame 2
> [snip lots of elifs]
>
> Or assuming you store the images in a list, e.g.:
>
> images = [image1, image2, image3, image4, image5]
>
> then
>
> this_image = images[frame_number % len(images)]
>
> which works with any arbitrary number of images without code changes
> and is faster and much more concise that a big if/elif block (which
> IMO should be avoided as much as possible).
>
> I also have this handy class for loading lots of images from files
> that I can match with a pattern:
>
> class Animation:
>
> def __init__(self, file_pattern, colorkey=(0,0,0), alpha=255,
> fade=0):
> self.images = []
> for path in glob.glob('data/%s' % file_pattern):
> image = pygame.image.load(path).convert()
> image.set_colorkey
(colorkey, RLEACCEL)
> image.set_alpha(max(alpha, 0), RLEACCEL)
> alpha -= fade
> self.images.append(image)
>
> Which I use for explosions where I want the alpha to fade to
> transparent as it plays through.
>
> You use it like so:
>
> xplode = Animation('xplode/*.jpg', alpha=180, fade=8)
>
> or to just load it with everything opaque:
>
> anim = Animation('somedir/*.png')
>
> You said you were using sprite sheets though so it may not be that
> helpful to you.
>
> -Casey
>