def __init__(self, x, y, image, sound, groups): SpriteW.__init__(self, x, y, image, (groups['all'], groups['items'])) self._sfx = sfx_loader.get_sfx(sound) # Tween function maps integer steps to values between 0 and 1. self._spawn_pos = vec(x, y) self._tween = tween.easeInOutSine self._step = 0 self._direction = 1 self.groups = groups
def __init__(self, x, y, groups): SpriteW.__init__(self, x, y, Barricade._IMAGE, (groups['all'], groups['obstacles'])) # Shrink hitbox and recenter self.image = pg.transform.scale( self.image, (4 * self.rect.w // 5, 4 * self.rect.h // 5)) self.rect = self.image.get_rect() self.rect.center = (x, y) self.hit_rect = self.rect
def __init__(self, x, y, scale_h, scale_w, rot, groups): self._layer = cfg.TRACKS_LAYER SpriteW.__init__(self, x, y, Tracks.IMAGE, groups['all']) # Transform and recenter. old_center = self.rect.center self.image = pg.transform.rotate(self.image, rot - Tracks.IMG_ROT) self.image = pg.transform.scale(self.image, (scale_h, scale_w)) self.rect = self.image.get_rect() self.rect.center = old_center self._alpha = 255
def __init__(self, x, y, max_durability, image, groups): SpriteW.__init__( self, x, y, image, (groups['item_boxes'], groups['obstacles'], groups['all'])) # Protects original image from being changed. self.image = self.image.copy() self.groups = groups self._box_sfx = sfx_loader.get_sfx(ItemBox.SFX) self._durability = max_durability self._disappear_alpha = chain(ItemBox._DISAPPEAR_ALPHA * 2)
def __init__(self, x, y, dir, type, color, id, groups): self._layer = cfg.ITEM_LAYER SpriteW.__init__(self, x, y, _IMAGES[type][color], (groups['all'], groups['bullets'])) Movable.__init__(self, x, y) self.rotate_image(dir - Bullet.IMAGE_ROT) # Rotatable.rotate_image(self, self.image, dir - Bullet.IMAGE_ROT) self.hit_rect = self.rect self._damage = _STATS[type]["damage"] self.vel = cfg.Vec2(_STATS[type]["speed"], 0).rotate(-dir) self._lifetime = _STATS[type]["lifetime"] self._spawn_timer = Timer() self.id = id
def __init__(self, x, y, img, groups): self._layer = cfg.TANK_LAYER SpriteW.__init__( self, x, y, img, (groups['all'], groups['tanks'], groups['damageable'])) MovableNonlinear.__init__(self, x, y) Rotatable.__init__(self) Damageable.__init__(self, self.hit_rect) self.groups = groups self.MAX_ACCELERATION = 768 self._barrels = [] self._items = [] self.hit_rect.center = self.pos self._track_timer = Timer()
def __init__(self, color, type, parent, offset, image, groups): self._layer = cfg.BARREL_LAYER SpriteW.__init__(self, *parent.rect.center, image, (groups['all'], )) Rotatable.__init__(self) self.groups = groups # Bullet parameters. self._type = type self._color = color self._ammo_count = _STATS[self._type]["max_ammo"] # Parameters used for position. self._parent = parent self._offset = offset self._fire_delay = _STATS[self._type]["fire_delay"] self._fire_timer = Timer() self._fire_sfx = sfx_loader.get_sfx(Barrel._FIRE_SFX)
def __init__(self, x, y, rot, groups): self._layer = cfg.EFFECTS_LAYER SpriteW.__init__(self, x, y, MuzzleFlash.IMAGE, groups['all']) self.rotate_image(rot - MuzzleFlash.IMG_ROT) # Rotatable.rotate_image(self, self.image, rot - MuzzleFlash.IMG_ROT) self._spawn_timer = Timer()
def __init__(self, title, actions, groups): SpriteW.__init__(self, 0, 0, Menu.IMAGE, groups) self._groups = groups self._title = title self.buttons = []
def __init__(self, x, y, groups): SpriteW.__init__(self, x, y, Tree._IMAGE, (groups['all'], groups['obstacles'])) self._layer = cfg.ITEM_LAYER