X-Git-Url: https://scm.cri.ensmp.fr/git/minwii.git/blobdiff_plain/346a9b8e1fcfe30629f0d1ee4675e9e8f89890cf..4c4732c6ed8cb0aaa70fb2d4c6e5a958868c5349:/src/pgu/ani.py
diff --git a/src/pgu/ani.py b/src/pgu/ani.py
deleted file mode 100644
index c33d380..0000000
--- a/src/pgu/ani.py
+++ /dev/null
@@ -1,90 +0,0 @@
-"""animation loading and manipulating functions.
-
-
please note that this file is alpha, and is subject to modification in
-future versions of pgu!
-"""
-
-print 'pgu.ani','This module is alpha, and is subject to change.'
-
-import math
-import pygame
-
-def _ani_load(tv,name,parts,frames,shape):
- l = len(frames)
- #print name,parts,l
- n = parts.pop()
- if len(parts):
- s = l/n
- for i in xrange(0,n):
- _ani_load(tv,name + ".%d"%i,parts[:],frames[s*i:s*(i+1)],shape)
- return
-
- for i in xrange(0,n):
- tv.images[name+".%d"%i] = frames[i],shape
-
-def ani_load(tv,name,img,size,shape,parts):
- """load an animation from an image
-
- ani_load(tv,name,image,size,shape,parts)
-
-
- - tv
- vid to load into
-
- name
- prefix name to give the images
-
- image
- image to load anis from
-
- size
- w,h size of image
-
- shape
- shape of image (usually a subset of 0,0,w,h) used for collision detection
-
- parts
- list of parts to divide the animation into
-
for example parts = [4,5] would yield 4 animations 5 frames long, 20 total
-
for example parts = [a,b,c] would yield ... images['name.a.b.c'] ..., a*b*c total
-
-
- """
- parts = parts[:]
- parts.reverse()
- w,h = size
- frames = []
- for y in xrange(0,img.get_height(),h):
- for x in xrange(0,img.get_width(),w):
- frames.append(img.subsurface(x,y,w,h))
- _ani_load(tv,name,parts,frames,shape)
-
-
-def image_rotate(tv,name,img,shape,angles,diff=0):
- """rotate an image and put it into tv.images
-
- image_rotate(tv,name,image,shape,angles,diff=0)
-
-
- - tv
- vid to load into
-
- name
- prefix name to give the images
-
- image
- image to load anis from
-
- shape
- shape fimage (usually a subset of 0,0,w,h) used for collision detection
-
- angles
- a list of angles to render in degrees
-
- diff
- a number to add to the angles, to correct for source image not actually being at 0 degrees
-
- """
- w1,h1 = img.get_width(),img.get_height()
- shape = pygame.Rect(shape)
- ps = shape.topleft,shape.topright,shape.bottomleft,shape.bottomright
- for a in angles:
- img2 = pygame.transform.rotate(img,a+diff)
- w2,h2 = img2.get_width(),img2.get_height()
- minx,miny,maxx,maxy = 1024,1024,0,0
- for x,y in ps:
- x,y = x-w1/2,y-h1/2
- a2 = math.radians(a+diff)
- #NOTE: the + and - are switched from the normal formula because of
- #the weird way that pygame does the angle...
- x2 = x*math.cos(a2) + y*math.sin(a2)
- y2 = y*math.cos(a2) - x*math.sin(a2)
- x2,y2 = x2+w2/2,y2+h2/2
- minx = min(minx,x2)
- miny = min(miny,y2)
- maxx = max(maxx,x2)
- maxy = max(maxy,y2)
- r = pygame.Rect(minx,miny,maxx-minx,maxy-miny)
- #print r
- #((ww-w)/2,(hh-h)/2,w,h)
- tv.images["%s.%d"%(name,a)] = img2,r
-
-