Made lever toggle arrow block.
This commit is contained in:
@@ -55,4 +55,38 @@ class Block(worldobject.WorldObject):
|
||||
- self.level.camera_y))
|
||||
|
||||
class ArrowBlock(Block):
|
||||
pass
|
||||
def __init__(self, level, x, y, anim='arrow_up', movable=True, is_up=True):
|
||||
self.__dict__.update(locals())
|
||||
worldobject.WorldObject.__init__(self, level, x, y, movable=movable)
|
||||
|
||||
self.frame = 0
|
||||
self.anim_speed = 15
|
||||
self.setting = False
|
||||
|
||||
def activate(self, setting):
|
||||
self.movable = True
|
||||
if self.check_move(0, 0):
|
||||
self.is_up = not setting
|
||||
self.movable = False
|
||||
|
||||
def update(self, e, t, dt):
|
||||
# Update the animation
|
||||
if not self.is_up:
|
||||
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 self.frame == len(self.level.imgs[self.anim]) - 1:
|
||||
self.movable = self.blocking = False
|
||||
self.z = -48
|
||||
else:
|
||||
self.movable = self.blocking = True
|
||||
self.z = 0
|
||||
|
||||
worldobject.WorldObject.update(self, e, t, dt)
|
||||
|
||||
def draw(self, window):
|
||||
self.img = self.level.imgs[self.anim][int(self.frame)]
|
||||
Block.draw(self, window)
|
||||
|
||||
Reference in New Issue
Block a user