Ejemplo n.º 1
0
    def load(self):
        time = sdl.getTicks()

        # driver.loading.load()

        global music
        global hit
        global ladleHit, graterHit, hitGeneric
        global explosionSound
        global ratDyingSound, woosh
        global haveCarrot, needCarrot

        # driver.loading.run()

        story = Story(3)
        story.load()
        story.run()

        sdl.mixer.allocateChannels(4)
        music = sdl.mixer.loadMUS('music/songs/2.mod')
        hit = []
        for i in range(3):
            hit.append(
                sdl.mixer.loadWAV_RW(
                    sdl.RWFromFile('music/chunks/hit' + str(i) + '.wav', 'rw'),
                    0))
        explosionSound = \
            sdl.mixer.loadWAV_RW(sdl.RWFromFile('music/chunks/explosion.wav'
                                 , 'rw'), 0)
        ratDyingSound = \
            sdl.mixer.loadWAV_RW(sdl.RWFromFile('music/chunks/rat_death.mp3'
                                 , 'rw'), 0)
        haveCarrot = \
            sdl.mixer.loadWAV_RW(sdl.RWFromFile('music/chunks/carrot_lets_me_see.wav'
                                 , 'rw'), 0)
        needCarrot = \
            sdl.mixer.loadWAV_RW(sdl.RWFromFile('music/chunks/need_a_carrot.wav'
                                 , 'rw'), 0)
        ladleHit = sdl.mixer.loadWAV_RW(
            sdl.RWFromFile('music/chunks/ladle_hit.wav', 'rw'), 0)
        graterHit = sdl.mixer.loadWAV_RW(
            sdl.RWFromFile('music/chunks/grater_hit.wav', 'rw'), 0)
        hitGeneric = sdl.mixer.loadWAV_RW(
            sdl.RWFromFile('music/chunks/hit.wav', 'rw'), 0)
        woosh = sdl.mixer.loadWAV_RW(
            sdl.RWFromFile('music/chunks/woosh.wav', 'rw'), 0)

        ratImages = [
            sdl.image.load('graphics/sprites/rat_hurt.png'),
            sdl.image.load('graphics/sprites/rat_up.png'),
            sdl.image.load('graphics/sprites/rat_right.png'),
            sdl.image.load('graphics/sprites/rat_down.png'),
            sdl.image.load('graphics/sprites/rat_left.png'),
            sdl.image.load('graphics/sprites/rat_attack_up.png'),
            sdl.image.load('graphics/sprites/rat_attack_right.png'),
            sdl.image.load('graphics/sprites/rat_attack_down.png'),
            sdl.image.load('graphics/sprites/rat_attack_left.png'),
            sdl.image.load('graphics/items/cheese.png'),
        ]

        # array of tiles used throughout the map

        mapImages = []
        for x in range(1, 32):
            mapImages.append(
                sdl.image.load('graphics/map/level_2/' + str(x) + '.png'))

        objectImages = []
        objectImages.append(
            sdl.image.load('graphics/items/pizza_animation.png'))
        objectImages.append(
            sdl.image.load('graphics/items/heart_animation.png'))
        objectImages.append(
            sdl.image.load('graphics/items/carrot_animation.png'))
        objectImages.append(sdl.image.load('graphics/items/key_animation.png'))
        objectImages.append(
            sdl.image.load('graphics/items/bomb_animation.png'))

        pantryImages = [
            sdl.image.load('graphics/items/lvl2_open_pantry.png'),
            sdl.image.load('graphics/items/lvl2_pantry_open.png'),
            sdl.image.load('graphics/messages/press_open.png'),
            sdl.image.load('graphics/items/open_pantry_key.png'),
            sdl.image.load('graphics/messages/found_key.png'),
            sdl.image.load('graphics/messages/basement_locked.png'),
            sdl.image.load('graphics/messages/found_graters.png'),
        ]

        weaponImages = []
        weaponImages.append(sdl.image.load('graphics/items/ladles.png'))
        weaponImages.append(sdl.image.load('graphics/items/graters.png'))

        pantryTextures = []
        for x in range(len(pantryImages)):
            pantryTextures.append(
                driver.renderer.createTextureFromSurface(pantryImages[x]))
            sdl.freeSurface(pantryImages[x])

    # creates an array of arrays of integrets that represents our map's floor

        global map
        map = []
        with open('data/level2.txt') as f:
            for line in f:
                currentLine = []
                split = line.split()
                for value in line.split():
                    currentLine.append(int(value))
                map.append(currentLine)

    # fill up the objects array which contains the objects that can be collided with

        global structures
        structures = []
        global exit
        for j in range(len(map)):
            for i in range(len(map[j])):
                value = map[j][i]
                if value is 31:
                    struct = Structure(
                        value,
                        i,
                        j,
                        pantryTextures,
                        False,
                        'pantry',
                    )
                    structures.append(struct)
                if value is 1:
                    exit = Structure(
                        value,
                        i,
                        j,
                        None,
                        False,
                        'exit',
                    )

        self.navGraph = navGraph.navGraph(map, {3}, 2)

        # for now just stuff that's dropped by the rats + the carrot

        global objects
        objects = []

        global objectTextures
        objectTextures = []
        for x in range(len(objectImages)):
            objectTextures.append(
                driver.renderer.createTextureFromSurface(objectImages[x]))
            sdl.freeSurface(objectImages[x])
        for x in range(len(weaponImages)):
            objectTextures.append(
                driver.renderer.createTextureFromSurface(weaponImages[x]))
            sdl.freeSurface(weaponImages[x])

        global ratTextures
        ratTextures = []
        for x in range(len(ratImages)):
            ratTextures.append(
                driver.renderer.createTextureFromSurface(ratImages[x]))
            sdl.freeSurface(ratImages[x])

        global mapTextures
        limitedVisionTexture1 = \
            driver.renderer.createTextureFromSurface(sdl.image.load('graphics/ui/limited_vision1.png'
                ))
        limitedVisionTexture2 = \
            driver.renderer.createTextureFromSurface(sdl.image.load('graphics/ui/limited_vision2.png'
                ))
        mapTextures = []
        for x in range(len(mapImages)):
            mapTextures.append(
                driver.renderer.createTextureFromSurface(mapImages[x]))
            sdl.freeSurface(mapImages[x])
        mapTextures.append(limitedVisionTexture1)
        mapTextures.append(limitedVisionTexture2)

        # set the current score to waht it was plus 100000

        driver.scoreBoard.setScore(driver.chef.score + 100000)
        story.cleanup()