Ejemplo n.º 1
0
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.wnd.mouse_exclusivity = False
        self.bpm = 242  # Hardcode bpm from info.dat
        self.camera = KeyboardCamera(self.wnd.keys,
                                     fov=60,
                                     near=1.0,
                                     far=1000.0)
        self.camera.velocity = 50
        self.camera_enabled = False

        meta = self.load_json('megalovania_remix/info.dat')
        self.map = BSScene(
            self.load_scene('bs_map3.glb'),
            self.camera,
            BSTrack('megalovania_remix/Expert.dat', meta['_beatsPerMinute']),
        )

        self.quad_fs = geometry.quad_fs()

        # Postprocess programs
        self.copy_prog = self.load_program('programs/copy.glsl')
        self.copy_greyscale_prog = self.load_program(
            'programs/copy_greyscale.glsl')
        self.blur_h_prog = self.load_program('programs/blur_h.glsl')
        self.blur_v_prog = self.load_program('programs/blur_v.glsl')
        self.combine = self.load_program('programs/combine.glsl')
        self.combine['texture1'] = 1

        # blur stuff
        self.offscreen_texture = self.ctx.texture(
            (self.wnd.buffer_width, self.wnd.buffer_height), 4)
        self.offscreen_depth = self.ctx.depth_texture(
            (self.wnd.buffer_width, self.wnd.buffer_height))
        self.offscreen = self.ctx.framebuffer(
            color_attachments=[self.offscreen_texture],
            depth_attachment=self.offscreen_depth,
        )
        bd = 1
        self.blur_h_texture = self.ctx.texture(
            (self.wnd.buffer_width // bd, self.wnd.buffer_height // bd), 4)
        self.blur_h_texture.repeat_x = False
        self.blur_h_texture.repeat_y = False
        self.blur_h = self.ctx.framebuffer(
            color_attachments=[self.blur_h_texture])
        self.blur_v_texture = self.ctx.texture(
            (self.wnd.buffer_width // bd, self.wnd.buffer_height // bd), 4)
        self.blur_v_texture.repeat_x = False
        self.blur_v_texture.repeat_y = False
        self.blur_v = self.ctx.framebuffer(
            color_attachments=[self.blur_v_texture])

        self.music_player = Player()
        self.music_source = StaticSource(
            load(RESOURCE_DIR / 'megalovania_remix/song.wav'))
        self.music_player.queue(self.music_source)
        self.music_player.play()
        # self.music_player.seek(60.0 * 4 + 50)
        self.music_player.volume = 1.0
Ejemplo n.º 2
0
    def __init__(self):
        self.map = None
        self.layout = None
        self.end_staircase = None
        self.stage = 1
        self.game_window = None
        self.pc = None
        self.next_stage = False
        self.move_timeout = True
        self.timeout_limit = 1  # sekundy
        self.enemies = set()
        self.consumables = set()
        self.equippables = set()
        self.sprites = Batch()
        self.items = Batch()
        self.stages = 5
        self.cell_size = 5
        self.width = 45  # w tile-ach, wielokrotność 3*sell_size
        self.height = 30  # wielokrotność cell_size
        self.status_bar = None
        self.difficulty = 0
        self.groups = [OrderedGroup(0), OrderedGroup(1)]

        self.tileset = TextureGrid(ImageGrid(load_image('img/tiles.png'), 5,
                                             5))

        self.tile_textures = {
            'floor': self.tileset.get(4, 0).get_image_data(),
            'wall': self.tileset.get(4, 1).get_image_data(),
            'bars': self.tileset.get(4, 2).get_image_data(),
            'rubble': self.tileset.get(4, 3).get_image_data(),
            'stairs': self.tileset.get(4, 4).get_image_data(),
        }

        self.sprite_textures = {
            'bandit_dig': self.tileset.get(0, 0),
            'bandit_disg': self.tileset.get(0, 1),
            'bandit_fierce': self.tileset.get(0, 2),
            'bandit_wander': self.tileset.get(0, 3),
            'bandit_wary': self.tileset.get(0, 4),
            'bandit_aggr': self.tileset.get(1, 2),
            'bandit_coward': self.tileset.get(1, 3),
            'bandit_def': self.tileset.get(1, 4),
            'guard_glass': self.tileset.get(1, 0),
            'guard_unlk': self.tileset.get(1, 1),
            'guard': self.tileset.get(2, 0),
            'guard_angry': self.tileset.get(2, 1),
            'guard_blnk': self.tileset.get(2, 2),
            'guard_chase': self.tileset.get(2, 3),
            'guard_def': self.tileset.get(2, 4),
            'player': self.tileset.get(3, 0),
            'player_h': self.tileset.get(3, 1),
            'player_d': self.tileset.get(3, 2),
            'player_dh': self.tileset.get(3, 3),
            'item': self.tileset.get(3, 4),
        }

        self.sounds = {
            'player_hit': StaticSource(load_media('sound/player_hit.wav')),
            'bandit_hit': StaticSource(load_media('sound/bandit_hit.wav')),
            'guard_hit': StaticSource(load_media('sound/guard_hit.wav')),
        }