Worked on task 4.

This commit is contained in:
Sakse Dalum
2012-08-08 22:40:27 +02:00
parent 67611d3ad1
commit 48a4a2ee3b
6 changed files with 157 additions and 31 deletions

View File

@@ -30,31 +30,40 @@ import worldobject
class Lever(worldobject.WorldObject):
def __init__(self, level, x, y, links,
anim='lever_leftright', toggling=False):
anim='lever_leftright', toggling=False, signal=[0, 1],
setting=False):
self.__dict__.update(locals())
worldobject.WorldObject.__init__(self, level, x, y)
self.init_setting = setting
self.frame = 0
self.anim_speed = 15
self.setting = False
def set_init_pos(self):
worldobject.WorldObject.set_init_pos(self)
self.init_setting = self.setting
def reset_pos(self):
worldobject.WorldObject.reset_pos(self)
self.setting = self.init_setting
def use(self, obj):
self.setting = not self.setting
for link in self.links:
link(self.setting)
link(self.signal[self.setting])
def update(self, e, t, dt):
# Update the animation
if self.setting:
if not self.setting:
self.frame = min(self.frame + self.anim_speed * dt,
len(self.level.imgs[self.anim]) - 1)
else:
self.frame = max(self.frame - self.anim_speed * dt,
0)
if not self.toggling:
if (self.frame + self.anim_speed * dt
>= len(self.level.imgs[self.anim]) - 1):
if (self.frame - self.anim_speed * dt <= 0):
self.setting = 0
worldobject.WorldObject.update(self, e, t, dt)