コード例 #1
0
 def __init__(self, x, y):
     super(Octopus, self).__init__(x, y, 16, 16, randint(10, 30))
     self.timer = Timer(randint(1, 5) * 1000, True)
     self.sprite = Sprite(x - 16, y - 16, SpriteType.OCTOPUS)
     self.shadow = Sprite(x - 16 - 8, y - 16 + 16,
                          SpriteType.OCTOPUS_SHADOW)
     self.i = 0
コード例 #2
0
    def __init__(self, y, left):
        super(Fishy, self).__init__(-32 if left else Camera.BOUNDS.width + 16,
                                    y, 16, 16,
                                    randint(1, 10) * 10)
        self.type = randint(0, 1)
        self.velocity.x = -1 if left else 1
        if self.velocity.x > 0:
            if self.type == 0:
                self.sprite = Sprite(
                    self.x, self.y, SpriteType.FISH_SMALL_L
                    if left else SpriteType.FISH_SMALL_R)
            elif self.type == 1:
                self.sprite = Sprite(
                    self.x, self.y, SpriteType.FISH_LARGE_L
                    if left else SpriteType.FISH_LARGE_R)
        else:
            if self.type == 0:
                self.sprite = Sprite(
                    self.x, self.y, SpriteType.FISH_SMALL_L
                    if left else SpriteType.FISH_SMALL_L)
            elif self.type == 1:
                self.sprite = Sprite(
                    self.x, self.y, SpriteType.FISH_LARGE_L
                    if left else SpriteType.FISH_LARGE_L)

        self.captured = False
コード例 #3
0
 def __init__(self, x, y, type):
     super(QBlock, self).__init__(x, y, 16, 16)
     self.active = False
     if type == 0:
         self.sprite = Sprite(self.x, self.y, SpriteType.Q_BLOCK_0)
     else:
         self.sprite = Sprite(self.x, self.y, SpriteType.Q_BLOCK_1)
         self.sprite.increment_sprite_y(16)
         self.active = True
コード例 #4
0
 def __init__(self, x, y, width=10, height=10, speed=50):
     super(Player, self).__init__(x, y, width, height, speed)
     self.sprite = Sprite(self.x - 3, self.y - 22, SpriteType.PLAYER_F)
     self.arms = Sprite(self.x - 3, self.y - 22,
                        SpriteType.PLAYER_ARM_SIDE_F)
     self.shadow = Sprite(self.x - 3, self.y - 21, SpriteType.PLAYER_SHADOW)
     self.set_color(Color.RED)
     self.item_carrying = None
     self.animation_walk = Animation(6, 6, 100)
     self.walking = False
コード例 #5
0
 def __init__(self, x, y, beans=50):
     super(Boat, self).__init__(x, y, 83, 16, 50)
     self.beans = beans
     self.playbounds = Rectangle(0, 16 * 3, Camera.BOUNDS.width,
                                 Camera.BOUNDS.height - 16 * 3)
     self.sprite = Sprite(x - 16, y - 48, SpriteType.BOAT)
     self.shadow = Sprite(x - 16 - 16, y - 16, SpriteType.BOAT_SHADOW)
     self.blinks = 5
     self.invis_duration = 1600
     self.invis_timer = Timer(self.invis_duration)
     self.blink_timer = Timer(self.invis_duration / self.blinks / 2)
     self.damaged = False
     self.flashing = False
     self.dead = False
コード例 #6
0
    def __init__(self, x, y):
        super(Player, self).__init__(x, y, 12, 28, 100)
        self.sprite = Sprite(self.x - 10, self.y - 16, SpriteType.PLAYER)
        self.walk_animation = Animation(6, 6, 100)
        self.direction = Direction.NONE
        self.area = None
        self.query_result = None

        self.default_jump_height = 16 * 4
        self.jump_duration = 1
        self.default_run_acceleration = 10
        self.default_ground_friction = 7
        self.default_air_friction = 1

        self.jump_initial_velocity = 0
        self.gravity = 0
        self.lateral_acceleration = 0
        self.ground_friction = 0
        self.air_friction = 0

        self.grounded = False
        self.jumping = False
        self.attempt_block_shift = False
        self.attacked = False
        self.restart = False
        self.pause = False
        self.transitioning = False

        self.restart_delay = Timer(2600)
        self.queue_restart = False
コード例 #7
0
 def __init__(self, x=0, y=0, width=1, height=1):
     super(Entity, self).__init__(x, y, width, height)
     self.sprite = Sprite(x, y, SpriteType.NONE)
     self.color = Color.WHITE
     self.layer = 0
     self.remove = False
     self.ignore = False
     self.__bounds_that_actually_draw_correctly = Rectangle(
         self.x, self.y, self.width, self.height, self.color, 2)
コード例 #8
0
    def __init__(self, x, y, layer, total_layers):
        super(SandWall, self).__init__(x, y - layer * 10, 64, 32)
        self.layer = layer
        self.sprite = Sprite(self.x, self.y, SpriteType.SAND_WALL)

        self.direction = 1
        self.parallax_layers = total_layers
        self.parallax_variance = 10
        self.parallax_speed = 0
        self.calculate_parallax_speed()
コード例 #9
0
    def __init__(self, x, y):
        super(Boulder, self).__init__(x, y, 0, 0, 0)
        if randint(1, 10) % 2 == 0:
            self.sprite = Sprite(self.x, self.y, SpriteType.FALLING_ROCK_BIG)
            self.radius = 16
            self.set_width(32)
            self.set_height(32)
        else:
            self.sprite = Sprite(self.x, self.y, SpriteType.FALLING_ROCK_SMALL)
            self.radius = 8
            self.set_width(16)
            self.set_height(16)

        self.center = Vector2(self.x + self.radius, self.y + self.radius)
        self.default_gravity = 16 * randint(3, 6)
        self.gravity = 0

        self.circle = Circle(self.center.x, self.center.y, self.radius,
                             Color.GREEN, 2)
コード例 #10
0
    def __init__(self, y, left, layer, total_layers):
        super(OceanWall, self).__init__(
            0 + layer * 20 if left else Camera.BOUNDS.width - 32 - layer * 20,
            y, 32, 64)
        self.layer = layer
        self.sprite = Sprite(
            self.x, self.y,
            SpriteType.ROCK_WALL_L if left else SpriteType.ROCK_WALL_R)

        self.direction = 1
        self.parallax_layers = total_layers
        self.parallax_variance = 10
        self.parallax_speed = 0
        self.calculate_parallax_speed()
コード例 #11
0
 def __init__(self,
              x,
              y,
              type,
              can_move=True,
              horizontal=True,
              start_direction=1,
              walk_duration=5000):
     super(NPC, self).__init__(x, y, 10, 10, 25)
     self.type = type
     self.sprite = Sprite(self.x - 3, self.y - 22, SpriteType.NONE)
     self.shadow = Sprite(self.x - 3, self.y - 21, SpriteType.PLAYER_SHADOW)
     self.speech_bubble = SpeechBubble(self.x - 11, self.y - 32 - 11, self)
     self.radius = 32
     self.show_prompt = False
     self.set_color(Color.RED)
     self.walk_direction = 1 if start_direction >= 0 else -1
     self.horizontal = horizontal
     self.can_move = can_move
     self._walk_timer = Timer(walk_duration, True)
     self.animation_walk = Animation(6, 6, 100)
     self.walking = True
     self._set_walking_sprite()
     self._set_random_emotion()
コード例 #12
0
    def __init__(self):
        super(BossCrab, self).__init__(96, 128, 128, 8)
        self.body = Sprite(self.x - 64, self.y - 32, SpriteType.CRAB_BOSS_BODY)
        self.bandaid = Sprite(self.x + 2 * 16, self.y - 1 * 16,
                              SpriteType.CRAB_BOSS_BANDAID)
        self.face = Sprite(self.x + 2 * 16, self.y + 2 * 16,
                           SpriteType.CRAB_FACE_SLEEPING)
        self.emote = Sprite(self.x + 5 * 16, self.y - 2 * 16,
                            SpriteType.CRAB_BOSS_EMOTE_SLEEPY)

        self.state_index = 0
        self.total_flashes = 3
        self.flashes = 0
        self.flash_duration = 200
        self.invinsibility_flash_timer = Timer(self.flash_duration)
        self.hurt = False
        self.flashing = False
        self.injured = False

        self.crab_smash = False
        self.sync_smash = 0
        self.special_attack = False

        self.idle_timer = Timer(5000)
コード例 #13
0
    def __init__(self, boss, is_left):
        super(Claw, self).__init__(96, 128, 56, 74, 200)
        self.boss = boss
        self.is_left = is_left

        self.sprite = Sprite(self.x, self.y, SpriteType.CRAB_BOSS_ARM)

        if self.is_left:
            self.set_location(self.x - 16, self.y + 6)
        else:
            self.sprite.flip_horizontally(True)
            self.set_location(self.x + 5 * 16, self.y + 6)

        self.initial_y = self.sprite.y
        self.windup = False
        self.slamming = False
        self.cooldown = False
        self.needs_setup = True
コード例 #14
0
    def __init__(self, x, y):
        super(Crab, self).__init__(x, y, 11, 9, 25)
        self.sprite = Sprite(self.x - 18, self.y - 19, SpriteType.CRAB)
        self.walk_animation = Animation(4, 4, 150)
        self.direction = Direction.RIGHT
        self.area = None
        self.query_result = None

        self.default_jump_height = 16 * 1.5
        self.jump_duration = 0.5

        self.jump_initial_velocity = 0
        self.gravity = 0
        self.lateral_acceleration = 0

        self.aggravated_move_speed = 100

        self.internal_bounds = Rect(self.x + 5, self.y + 5, 1, 1)

        self.grounded = False
        self.aggravated = False
        self.dead = False
コード例 #15
0
 def __init__(self, x, y):
     super(FlowerPot, self).__init__(x, y + 10, 16, 16)
     self.sprite = Sprite(self.x, self.y - 32, SpriteType.FLOWER_POT)
コード例 #16
0
 def __init__(self, ocean_depth):
     super(Hook, self).__init__(0, 0, 13, 13, 80)
     self.ocean_depth = ocean_depth
     self.sprite = Sprite(self.x, self.y - 7, SpriteType.HOOK)
     self.direction = 1
     self.total_hooked_fish = 0
コード例 #17
0
 def __init__(self, x, y):
     super(Sofa, self).__init__(x + 4, y + 10, 56, 16)
     self.sprite = Sprite(self.x - 4, self.y - 16, SpriteType.SOFA)
コード例 #18
0
 def __init__(self, x, y, speed=75):
     super(Rock, self).__init__(x, y, 34, 14, speed)
     self.sprite = Sprite(x - 7, y - 16, SpriteType.ROCK)
     self.shadow = Sprite(self.x - 7 - 8, self.y - 16,
                          SpriteType.ROCK_SHADOW)
     self.dead = False
コード例 #19
0
 def __init__(self, x, y):
     super(StoolTall, self).__init__(x, y + 10, 16, 6)
     self.sprite = Sprite(self.x, self.y - 16 - 6, SpriteType.STOOL_TALL)
コード例 #20
0
 def __init__(self, x, y, empty=True):
     super(Shelf, self).__init__(x, y + 10, 32, 16)
     if empty:
         self.sprite = Sprite(self.x, self.y - 48, SpriteType.SHELF_EMPTY)
     else:
         self.sprite = Sprite(self.x, self.y - 48, SpriteType.SHELF_FULL)
コード例 #21
0
 def __init__(self, x, y, value):
     super(Eggs, self).__init__(x, y, value)
     self._type = ItemType.EGGS
     self._sprite = Sprite(x, y, SpriteType.EGGS_RAW)
コード例 #22
0
 def __init__(self, x, y, value):
     super(Crop, self).__init__(x, y, value)
     self._type = ItemType.CROP
     self._sprite = Sprite(x, y, SpriteType.CROP_RAW)
コード例 #23
0
 def __init__(self, x, y):
     super(CounterShop, self).__init__(x, y + 10, 112, 16)
     self.sprite = Sprite(self.x, self.y - 32, SpriteType.SHOP_COUNTER)
コード例 #24
0
 def __init__(self, x, y, value):
     super(Coffee, self).__init__(x, y, value)
     self._type = ItemType.COFFEE
     self._sprite = Sprite(x, y, SpriteType.COFFEE_RAW)
コード例 #25
0
 def __init__(self, x, y):
     super(Table, self).__init__(x, y + 10, 32, 12)
     self.sprite = Sprite(self.x, self.y - 16, SpriteType.TABLE)
コード例 #26
0
 def __init__(self, x, y):
     super(StoolShort, self).__init__(x, y + 10 + 4, 16, 6)
     self.sprite = Sprite(self.x, self.y - 16 - 4, SpriteType.STOOL_SHORT)
コード例 #27
0
 def __init__(self, x, y):
     super(Bed, self).__init__(x, y + 10, 32, 48)
     self.sprite = Sprite(self.x, self.y - 16, SpriteType.BED)
コード例 #28
0
 def __init__(self, x, y, speed=50):
     super(Bullet, self).__init__(x, y, 11, 12, speed)
     self.sprite = Sprite(x, y - 2, SpriteType.INK_BULLET)
     self.shadow = Sprite(x, y - 2 + 16, SpriteType.INK_BULLET_SHADOW)
     self.dead = False
コード例 #29
0
 def __init__(self, x, y, value):
     super(Fish, self).__init__(x, y, value)
     self._type = ItemType.FISH
     self._sprite = Sprite(x, y, SpriteType.FISH_RAW)
コード例 #30
0
 def __init__(self, x, y):
     super(CounterDiner, self).__init__(x, y + 10 + 2, 256, 12)
     self.sprite = Sprite(self.x, self.y - 80 + 12,
                          SpriteType.DINER_COUNTER)