from Richter.Actor import Actor
from Richter.Sprite import *
class Zombie(Actor):
def __init__(self, **kwargs):
Actor.__init__(self, **kwargs)
self.defineState('walk_r',
Sprite(['Sprites/zombie soldier/zombiesoldierwalk_%d.png' % n for n in range(1,5)],
framerate=10.0, scale=2.0, gravity=(CENTER,BOTTOM)))
self.defineState('walk_l',
Sprite(['Sprites/zombie soldier/zombiesoldierwalk_%d.png' % n for n in range(1,5)],
mirror=True, framerate=10.0, scale=2.0, gravity=(CENTER,BOTTOM)))
self.setState('walk_r')
self.direction = 0
self.disabled = 0
def hitWall(self):
if self.direction == 0:
self.direction = 1
self.setState('walk_l')
elif self.direction == 1:
self.direction = 0
self.setState('walk_r')
def collideStart(self, obj):
if self.disabled > 0: return
if obj.__class__.__name__ == 'RichterActor':
if not obj.grounded and obj.delta[1] < 0:
obj.bounce()
self.disabled = 100
def update(self):
if self.disabled > 0:
if self.disabled % 2:
self.setState('walk_r')
else:
self.setState('walk_l')
self.disabled -= 1
if self.disabled == 0:
if self.direction == 0:
self.setState('walk_r')
else:
self.setState('walk_l')
else:
if self.direction == 0:
self.move((1, 0))
elif self.direction == 1:
self.move((-1, 0))