import random
from pgzero.clock import each_tick
from pgzero.loaders import images
-from .actors.surf import SurfActor
+from pygame.constants import BLEND_RGBA_MULT
+from .actors.orientatedsurf import OrientatedSurfActor
+from .serums import roach_serum_color
-class RoachActor(SurfActor):
+class RoachActor(OrientatedSurfActor):
def __init__(self, frames):
self._frames = frames
self._frame = random.randint(0, len(frames) - 1)
self._dt = 0
self._cycle_dt = 0.2
each_tick(self.update)
- super().__init__(surf=frames[self._frame])
+ super().__init__(surf=frames[self._frame], angle=0)
def update(self, dt):
self._dt += dt
self.suffix = suffix
self.frames = 4
- def assemble_frame(self, i, roach_data):
- base = images.load("roach%s/roach_%d" % (self.suffix, i + 1))
- return base
+ def assemble_frame(self, i, color, roach_data):
+ roach = images.load("roach%s/roach_%d" % (self.suffix, i + 1))
+ eyes = images.load("roach%s/eyes_%d" % (self.suffix, i + 1))
+ frame = roach.copy()
+ frame.fill(color, None, BLEND_RGBA_MULT)
+ frame.blit(eyes, (0, 0))
+ return frame
def assemble(self, roach_data):
+ color = roach_serum_color(roach_data)
frames = [
- self.assemble_frame(i, roach_data) for i in range(self.frames)]
+ self.assemble_frame(i, color, roach_data)
+ for i in range(self.frames)]
return RoachActor(frames)