Пример #1
0
    def __init__(self, x_pos: int, y_pos: int, mouse, *groups):
        super().__init__(*groups)

        spritesheet = SpriteSheet('res/sprite/spritesheet.png')
        self.sprites = [
            spritesheet.get_sprite(31, 12, 5, 5),
            spritesheet.get_sprite(37, 12, 5, 5),
            spritesheet.get_sprite(43, 12, 5, 5),
            spritesheet.get_sprite(49, 12, 5, 5),
            spritesheet.get_sprite(55, 12, 5, 5),
            spritesheet.get_sprite(61, 12, 5, 5)
        ]

        self.sprite_count: int = 0
        self.image = spritesheet.get_sprite(31, 12, 5, 5)
        self.image = pygame.transform.scale(self.image, (15, 15))
        self.mouse = mouse
        self.rect = pygame.Rect(x_pos, y_pos, 5, 5)

        self.pos_x = x_pos
        self.pos_y = y_pos

        self.ang = math.atan2(
            self.mouse[0] - self.rect.center[0],
            self.mouse[1] - self.rect.center[1]) - math.pi / 2
        self.ang_x = math.cos(self.ang) * 5
        self.ang_y = math.sin(self.ang) * 5
Пример #2
0
    def __init__(self, *groups):
        super().__init__(*groups)
        sprite_sheet = SpriteSheet('res/sprite/spritesheet.png')
        self.sprites = {
            'HeroRun': [
                sprite_sheet.get_sprite(1, 9, 7, 7),
                sprite_sheet.get_sprite(11, 9, 7, 7),
                sprite_sheet.get_sprite(21, 9, 7, 7), (28, 28)
            ],
            'HeroGun': [
                sprite_sheet.get_sprite(32, 22, 11, 9),
                sprite_sheet.get_sprite(44, 22, 11, 9),
                sprite_sheet.get_sprite(56, 22, 11, 9), (44, 36)
            ]
        }

        self.image = sprite_sheet.get_sprite(0, 9, 9, 9)
        self.image = pygame.transform.scale(self.image, [28, 28])
        self.rect = pygame.Rect(32 * 8, 32 * 8, 28, 28)

        self.sprite_anim = 'HeroRun'
        self.animations = {'Gun': False, 'GunPerma': False}

        self.lado_x = [True, True]
        self.lado_y = [True, True]

        self.speed: int = 5
        self.velocity = 4
        self.sprite_count: int = 1

        self.rotation = None
Пример #3
0
    def init_background(self):
        # Background
        background_ss = SpriteSheet("data/levels/level_1.png")
        self.background = background_ss.get_image(coords.LEVEL_1,
                                                  constants.IMG_MULTIPLIER,
                                                  constants.WHITE)

        # Title image
        title_screen_ss = SpriteSheet("data/title_screen.png")
        self.title = title_screen_ss.get_image(coords.MAIN_TITLE,
                                               constants.IMG_MULTIPLIER,
                                               constants.WHITE)

        self.title_rect = self.title.get_rect()
        self.title_rect.centerx = constants.SCREEN_WIDTH_MID
        self.title_rect.centery = 200
Пример #4
0
 def __init__(self, pos_x: int, pos_y: int, *groups):
     super().__init__(*groups)
     self.lifes = 3
     self.image = SpriteSheet('res/sprite/spritesheet.png').get_sprite(
         16, 38, 9, 10)
     self.image = pygame.transform.scale(self.image, (27, 30))
     self.rect = pygame.Rect(pos_x, pos_y, 27, 30)
Пример #5
0
    def __init__(self, sound_manager, game_info):
        pygame.sprite.Sprite.__init__(self)

        self.sound_manager = sound_manager
        self.game_info = game_info

        self.state = c.STATE_STANDING
        self.power = c.POWER_SMALL
        self.direction = c.DIR_RIGHT
        self.world_shift = 0

        self.transition_state = None
        self.transition_timer = 0

        self.player_small_frames = {}
        self.player_frames = {}
        self.transition_frames = {}
        self.death_frame = None

        self.sprite_sheet = SpriteSheet("data/characters.gif")

        self.load_player_small_frames()
        self.load_player_adult_frames()

        self.image = self.get_player_frame(self.state, self.direction)
        self.rect = self.image.get_rect()

        self.rect.left = 100

        self.x_vel = 0
        self.y_vel = 0
Пример #6
0
    def __load_spritesheet(self, object_name: str):
        ss_obj = self.__assets_file[object_name]
        ss_filepath = f'assets/{ss_obj["filepath"]}'

        ss_tile_size = ss_obj['tile_size']
        ss_render_tile_size = ss_obj['render_tile_size']

        return SpriteSheet(ss_filepath, ss_tile_size, ss_render_tile_size)
Пример #7
0
    def init_frames(self):
        sprite_sheet = SpriteSheet("data/tile_set.png")

        self.coin_box_frames.append(sprite_sheet.get_image(coords.COIN_BOX_1, c.IMG_MULTIPLIER, c.WHITE))
        self.coin_box_frames.append(sprite_sheet.get_image(coords.COIN_BOX_2, c.IMG_MULTIPLIER, c.WHITE))
        self.coin_box_frames.append(sprite_sheet.get_image(coords.COIN_BOX_3, c.IMG_MULTIPLIER, c.WHITE))

        self.empty_frame = sprite_sheet.get_image(coords.COIN_BOX_EMPTY, c.IMG_MULTIPLIER, c.WHITE)
Пример #8
0
    def init_image(self):
        sprite_sheet = SpriteSheet("data/item_objects.png")

        if self.x_vel < 0:
            self.image = sprite_sheet.get_image(coords.BRICK_PIECE_LEFT,
                                                c.IMG_MULTIPLIER, c.WHITE)
        else:
            self.image = sprite_sheet.get_image(coords.BRICK_PIECE_RIGHT,
                                                c.IMG_MULTIPLIER, c.WHITE)
Пример #9
0
    def __init__(self, game_info):
        GameState.__init__(self, GameState.STATE_LOAD, GameState.STATE_GAME)

        self.game_info = game_info
        self.text_helper = TextHelper()

        self.load_screen_time = -1
        # Mario frame
        sprite_sheet = SpriteSheet("data/characters.gif")
        self.mario_frame = sprite_sheet.get_image(
            coords.MARIO_SMALL_STANDING_RIGHT, c.IMG_MULTIPLIER)
Пример #10
0
 def __init__(self):
     self.sprite = SpriteSheet(res.laser_light1)
     self.sprite.init(4, 4)
     self.sprite.origin = self.sprite.frame_dim/2
     self.explosion_sprite = SpriteSheet(res.explosion_missile1)
     self.explosion_sprite.init(9, 9, 0.05)
     self.explosion_sprite.origin = self.explosion_sprite.frame_dim/2
     self.damage = 1
     self.phase = 0 # 0 = Weapon to offscreen, 1 = offscreen to target, 2 = detonation
     self.target_room = None
     self.start_position = sf.Vector2(0, 0)
     self.to_offscreen_position = sf.Vector2(0, 0)
     self.from_offscreen_position = sf.Vector2(0, 0)
     self.target_position = sf.Vector2(0, 0)
     self.fire_time = 0
     self.hit_time = 0
     self.hit = True # Hit or miss?
     self.hit_shields = False # Hit shields or ship?
     self.active = False
     self.is_mine = False # Does this projectile belong to me? (Client only, used for lock_window stuff)
Пример #11
0
    def __init__(self):
        GameState.__init__(self, GameState.STATE_MENU, GameState.STATE_LOAD)

        self.player_num = 1
        self.background = None
        self.title = None
        self.title_rect = None

        self.init_background()
        self.text_helper = TextHelper()

        item_objects_ss = SpriteSheet("data/item_objects.png")
        self.selector_frame = item_objects_ss.get_image(
            coords.TITLE_SELECTOR, constants.IMG_MULTIPLIER)
Пример #12
0
    def __init__(self, x, y):
        Powerup.__init__(self, x, y)

        sprite_sheet = SpriteSheet("data/item_objects.png")

        self.x_vel = 2

        self.display_frame = sprite_sheet.get_image(coords.MUSHROOM_POWERUP,
                                                    c.IMG_MULTIPLIER, c.BLACK)
        self.refresh_image(self.display_frame)

        self.time = 0

        self.y_cap = self.rect.y - self.rect.height
Пример #13
0
 def __init__(self, pos_x: int, pos_y: int, *groups):
     super().__init__(*groups)
     self.type: str = 'Gun'
     self.perma_item: str = 'GunPerma'
     spritesheet = SpriteSheet('res/sprite/spritesheet.png')
     self.sprites = [
         spritesheet.get_sprite(0, 0, 11, 7),
         spritesheet.get_sprite(12, 0, 11, 7),
         spritesheet.get_sprite(24, 0, 11, 7),
         spritesheet.get_sprite(36, 0, 11, 7)
     ]
     self.sprite_count: int = 0
     self.image = spritesheet.get_sprite(0, 0, 11, 7)
     self.image = pygame.transform.scale(self.image, [22, 14])
     self.rect = pygame.Rect(pos_x, pos_y, 35, 28)
Пример #14
0
    def init_score_dictionary(self):
        tile_set = SpriteSheet("data/item_objects.png")

        self.score_dict[0] = tile_set.get_image(coords.SCORE_WHITE_0,
                                                c.IMG_MULTIPLIER)
        self.score_dict[1] = tile_set.get_image(coords.SCORE_WHITE_1,
                                                c.IMG_MULTIPLIER)
        self.score_dict[2] = tile_set.get_image(coords.SCORE_WHITE_2,
                                                c.IMG_MULTIPLIER)
        self.score_dict[4] = tile_set.get_image(coords.SCORE_WHITE_4,
                                                c.IMG_MULTIPLIER)
        self.score_dict[5] = tile_set.get_image(coords.SCORE_WHITE_5,
                                                c.IMG_MULTIPLIER)
        self.score_dict[8] = tile_set.get_image(coords.SCORE_WHITE_8,
                                                c.IMG_MULTIPLIER)
Пример #15
0
    def init_frames(self):
        sprite_sheet = SpriteSheet("data/item_objects.png")

        self.coin_frames.append(
            sprite_sheet.get_image(coords.COIN_SPINNING_1,
                                   constants.IMG_MULTIPLIER))
        self.coin_frames.append(
            sprite_sheet.get_image(coords.COIN_SPINNING_2,
                                   constants.IMG_MULTIPLIER))
        self.coin_frames.append(
            sprite_sheet.get_image(coords.COIN_SPINNING_3,
                                   constants.IMG_MULTIPLIER))
        self.coin_frames.append(
            sprite_sheet.get_image(coords.COIN_SPINNING_4,
                                   constants.IMG_MULTIPLIER))

        for frame in self.coin_frames:
            frame.set_colorkey(constants.BLACK)
Пример #16
0
    def __init__(self, id):
        self.id = id
        self.sprite = SpriteSheet(res.weapon)
        self.sprite.init(12, 12, 0.06)
        self.sprite.set_frame_loop(5, 5, False)

        self.slot = None  # WeaponSlot this weapon is in
        self.position = sf.Vector2(0, 0)

        self.firing = False  # Whether or not it's firing this turn
        self.powered = False  # Is the weapon powered or unpowered
        self.was_powered = False  # Was the weapon powered last turn? (Used for weapon slide out/in animation)
        self.target = None  # Target room

        self.charge = 0

        self.required_charge = 1
        self.required_power = 1  # Power consumption
        self.projectile_type = None
        self.num_shots = 2

        self.projectiles = [Projectile(), Projectile()]
Пример #17
0
 def __init__(self, pos, type, frames, frames_per_row, input):
     super().__init__(pos, input)
     self.sprite = SpriteSheet(res.textures[type])
     self.sprite.init(frames, frames_per_row)
     self.sprite.position = pos
     self.local_bounds = self.sprite.local_bounds
Пример #18
0
    def init_frames(self):
        sprite_sheet = SpriteSheet("data/characters.gif")

        self.shell_frame = sprite_sheet.get_image(coords.SHELL_GREEN, c.IMG_MULTIPLIER, c.BLUE)
Пример #19
0
 def __init__(self):
     image = SpriteSheet('res/sprite/spritesheet.png')
     self.tiles = {'Block': image.get_sprite(78, 0, 18, 18),
                   'Floor': image.get_sprite(77, 66, 18, 18)}
Пример #20
0
 def __init__(self):
     self.tiles = WorldMapSprite()
     map = SpriteSheet('res/sprite/spritesheet.png').get_sprite(105, 9, 47, 47)
     self.map_array_block_wall= pygame.PixelArray(map).extract((255,255,255))
     self.map_array_items = pygame.PixelArray(map).extract((255, 0, 0))
     self.map_array_enemys = pygame.PixelArray(map).extract((0, 255, 0))
Пример #21
0
 def init_frames(self):
     sprite_sheet = SpriteSheet("data/tile_set.png")
     self.display_frame = sprite_sheet.get_image(coords.BRICK,
                                                 c.IMG_MULTIPLIER, c.WHITE)
Пример #22
0
    def init_frames(self):
        sprite_sheet = SpriteSheet("data/characters.gif")

        self.goomba_frames.append(sprite_sheet.get_image(coords.GOOMBA_LEFT, c.IMG_MULTIPLIER, c.BLUE))
        self.goomba_frames.append(sprite_sheet.get_image(coords.GOOMBA_RIGHT, c.IMG_MULTIPLIER, c.BLUE))
        self.dead_frame = sprite_sheet.get_image(coords.GOOMBA_DEAD, c.IMG_MULTIPLIER, c.BLUE)