[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



:) 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
>