def __init__(self, level, speed, tileset, **kwargs): super().__init__(dirRule=lambda: { -1: Direction.Left, 0: None, 1: Direction.Right }[self.move.getDir(x=True)], **kwargs) self.collision = Collision(self, level) self.move = Move(self, speed, collision=self.collision) self._gravity = GravityLine(self, 2, h=level.map.h // 2) self.jumping = Jumping(self.move, self._gravity, 2) self._input = Input(inputStream=self.getInputStream()) self.applyInputSettings() self._damageTimer = MinTimeEventStream(duration=2) self._damageTimer.subscribe("self", self._takeDmg, autoInit=False) def _isMoving(): return self.move.getSpeed(x=True) != 0 def _hDir(): return self.move.getDir(x=True) def _vDir(): return {False: -1, True: 1}[self._gravity.positiveDir()] image = Files.loadImage(tileset) self._display = Display(image, self, Animation(image, 11, _isMoving, _hDir, _vDir), True) self._weapon = Weapon(level, anchor=self, offsetFunc=lambda: ((5 * self.getIntDir()), 0), inputStream=self.getInputStream())
def __init__(self, rect, speed, tileset, level, maxHealth, **kwargs): super().__init__(rect=rect, dirRule=lambda: { -1: Direction.Left, 0: None, 1: Direction.Right, }[self.move.getDir(x=True)], idName="enemy", baseHealth=maxHealth, **kwargs) self.collision = Collision(self, level, "enemy") self.move = Move(self, speed, self.collision) self.gravity = GravityLine(self, 2, h=level.map.h // 2) self._ai = AI(self) def _isMoving(): return self.move.getSpeed(x=True) != 0 def _hDir(): return self.move.getDir(x=True) def _vDir(): return {False: -1, True: 1}[self.gravity.positiveDir()] image = Files.loadImage(tileset) self._display = Display(image, self, Animation(image, 11, _isMoving, _hDir, _vDir), True)
def __init__(self, level, speed, tileset, **kwargs): super().__init__( dirRule=lambda: { -1: Direction.Left, 0: None, 1: Direction.Right }[self.move.getDir(x=True)], **kwargs) self.collision = Collision(self, level) self.move = Move(self, speed, collision=self.collision) self._gravity = GravityLine(self, 2, h=level.map.h // 2) self.jumping = Jumping(self.move, self._gravity, 2) self._input = Input(inputStream=self.getInputStream()) self.applyInputSettings() self._damageTimer = MinTimeEventStream(duration=2) self._damageTimer.subscribe("self", self._takeDmg, autoInit=False) def _isMoving(): return self.move.getSpeed(x=True) != 0 def _hDir(): return self.move.getDir(x=True) def _vDir(): return {False: -1, True: 1}[self._gravity.positiveDir()] image = Files.loadImage(tileset) self._display = Display(image, self, Animation(image, 11, _isMoving, _hDir, _vDir), True) self._weapon = Weapon(level, anchor=self, offsetFunc=lambda: ((5 * self.getIntDir()), 0), inputStream=self.getInputStream())
def __init__(self, x, y, parent): super().__init__(pos=(x, y)) assert isinstance(parent, Health) self._hearts = [] self._parent = parent hearts = Files.loadImage(const.heartsImg) self._heartFilled = (hearts.subsurface(Object(rect=(0, 0, 10, 16)).asRect()), hearts.subsurface(Object(rect=(10, 0, 10, 16)).asRect())) self._heartEmpty = (hearts.subsurface(Object(rect=(20, 0, 10, 16)).asRect()), hearts.subsurface(Object(rect=(30, 0, 10, 16)).asRect())) self.update() self._parent.subscribe("healthbar", self.recalculate)
def __init__(self, x, y, maxTime, numNums=3): image, width = const.numbers numbers = Files.loadImage(image) numbers.set_colorkey(numbers.get_at((0, 0))) super().__init__(rect=(x, y, width * numNums, numbers.get_height()), enabled=True) self._numbers = [] self._digits = [] self._maxTime = maxTime self._currentTime = maxTime self._blank = Display(Surface((width, self.h))) for i in range(width): self._numbers.append(Display(numbers.subsurface((i * width, 0, width, self.h)))) surf = Surface((self.w + 2 * numNums, self.h)) self._display = Display(surf, self, transparent=True, alpha=200) for i in range(numNums): self._digits.append(surf.subsurface((i * width + 2 * i, 0, width, self.h))) self._lastUpdate = -maxTime
def __init__(self, file, tileset): super().__init__() self._file = file self._tileset = Files.loadImage(tileset) self._tileset.set_colorkey(self._tileset.get_at((0, 0)))
def __init__(self, size, dampSpeed, picture, transparency): super().__init__(size=size) self._dampSpeed = dampSpeed self._picture = Files.loadImage(picture) self._display = Display(self._picture, klass=self, transparent=transparency)