-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathanimatedSprite.py
More file actions
42 lines (42 loc) · 1.27 KB
/
Copy pathanimatedSprite.py
File metadata and controls
42 lines (42 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class animatedSprite(object):
def __init__(self,sprite_sheet,sprite_rect,pos,timer_event,rewind=True,repeat=-1):
self.sprite_sheet=sprite_sheet
self.sprite_rect=sprite_rect
self.timer_event=timer_event
self.rewind=rewind
self.init_repeat=repeat
self.direction=1
self.pos=pos
self.preEvents()
def get_size(self):
return self.sprite_rect.size
def get_rect(self):
return self.sprite_rect
def preEvents(self):
self.repeat=self.init_repeat
def setLine(self,line):
rect=self.sprite_rect
if rect.h*(line+1)<self.sprite_sheet.get_width():
rect.y=rect.h*line
def eventControler(self,event,resize,move):
if event.type==self.timer_event:
if self.repeat!=0:
rect=self.sprite_rect
sheet_width=self.sprite_sheet.get_width()
rect.x+=rect.w*self.direction
if self.rewind:
if rect.right==sheet_width or rect.left==0:
self.direction*=(-1)
if self.repeat>0:self.repeat-=1
else:
if rect.right>sheet_width:
if self.repeat>0:self.repeat-=1
rect.x-=rect.w if self.repeat==0 else rect.x
def blitOn(self,display):
if display:
display.blit(self.sprite_sheet.subsurface(self.sprite_rect),self.pos)
return None
else:
return self.getImage()
def getImage(self):
return self.sprite_sheet.subsurface(self.sprite_rect)