def __init__(self): self.lava_pool = TiledSprite('65000000bc/lava_pool', 4, 1) self.lava_pool.lethal = True self.lava_puddle = Sprite('65000000bc/volcano_lava_puddle') self.lava_puddle.collidable = False self.lava_puddle_blocker = Box(10, self.BASE_CAVERN_RECT.height, (0, 0, 0)) self.top_sprite = Sprite('65000000bc/volcano_top') self.top_sprite.use_pixel_collisions = True self.top_sprite.update_image() self.bottom_sprite = Sprite('65000000bc/volcano_bottom') self.bottom_sprite.update_image() self.cavern_blocker = Box(self.bottom_sprite.rect.width / 2, self.BASE_CAVERN_RECT.height, (0, 0, 0)) self.column_sprite = Sprite('65000000bc/volcano_column') self.column_sprite.use_pixel_collisions = True self.column_sprite.update_image() self.cover_sprite = Sprite('65000000bc/volcano_cover') self.cover_sprite.collidable = False self.rect = pygame.Rect(0, 0, self.bottom_sprite.rect.width, self.top_sprite.rect.height + self.BASE_CAVERN_RECT.height + self.bottom_sprite.rect.height)
def __init__(self): super(Player, self).__init__('player', flip_image=True, obey_gravity=True) self.engine = get_engine() self.should_check_collisions = True # Sprites self.propulsion_below = Sprite("propulsion_below", flip_image=True) self.propulsion_below.collidable = False self.propulsion_below.visible = 0 self.tractor_beam = TractorBeam(self) # State self.jumping = False self.hovering = False self.block_events = False self.jump_origin = None self.hover_time_ms = 0 self.health = self.MAX_HEALTH self.lives = self.MAX_LIVES self.last_safe_spot = None self.vehicle = None self.vehicle_move_cnx = None # Signals self.health_changed = Signal() self.lives_changed = Signal() self.direction_changed.connect(self.on_direction_changed) self.reverse_gravity_changed.connect(self.on_reverse_gravity_changed)
def __init__(self, layer, rect): super(ScreenEffect, self).__init__() self.rect = rect self.sprite = Sprite(None) self.sprite.image = pygame.Surface(rect.size).convert_alpha() self.sprite.move_to(*rect.topleft) if layer: layer.add(self.sprite)
def __init__(self): self.bg_sprite = Sprite('mountain_bg') self.cover_sprite = Sprite('mountain_cover') self.cover_sprite.collidable = False self.bottom_sprite = Sprite('mountain_bottom') self.bottom_sprite.use_pixel_collisions = True self.bottom_sprite.update_image() self.top_sprite = Sprite('mountain_top') self.top_sprite.use_pixel_collisions = True self.top_sprite.update_image() self.left_sprites = [] self.right_sprites = [] for i in range(1, 6): sprite = Sprite('mountain_left_%s' % i) if i != 3: # Sort of a hack. We need a blocker so you can't # climb the mountain. sprite.use_pixel_collisions = True sprite.update_image() self.left_sprites.append(sprite) sprite = Sprite('mountain_right_%s' % i) sprite.use_pixel_collisions = True sprite.update_image() self.right_sprites.append(sprite) self.rect = pygame.Rect( 0, 0, self.bottom_sprite.rect.width, sum([sprite.rect.height for sprite in self.right_sprites]) + self.top_sprite.rect.height + self.bottom_sprite.rect.height)