예제 #1
0
    def __init__(self, director, video_number, nextScene=None):
        super(Cutscene, self).__init__()

        self.director = director
        self.backscene = self.director.scene
        self.video_number = video_number
        self.videoDirectory = '../res/cutscenes/cutscene' + str(
            video_number) + '.mov'
        self.nextScene = nextScene

        print("loading: ", self.videoDirectory)

        self.skipped = False

        self.skippable = True

        # print

        self.vidLayer = VideoLayer(self.videoDirectory)

        back_button = Button(83, 638, '../res/main_left.png', self, self.back)
        back_button.setHasHighlight('../res/main_left_h.png')

        if self.skippable:
            # print("skippable")
            skip_button = Button(1187, 638, '../res/main_right.png', self,
                                 self.skip)
            skip_button.setHasHighlight('../res/main_right_h.png')
            self.add(skip_button, 1)

        self.add(back_button, 1)
        self.add(self.vidLayer, 0)

        self.vidLayer.play()
        th.start_new_thread(self.endChecker, (self.vidLayer.media_player, ))
예제 #2
0
    def __init__(self, director, state):

        self.director = director
        self.state = state

        self.dna = GameBackground('../res/main_game_backgrounds/main.png')
        # self.bg = GameBackground('../res/main_game_backgrounds/background.png')

        super().__init__()

        self.save_dir = 'profiles/save.json'
        if self.state == 'newgame':
            self.profile = Profile()
        else:
            self.profile = Profile() if not os.path.exists(
                self.save_dir) else Profile.read_save(self.save_dir)

        self.popups = {}
        self.shown_popup = None
        # for name in os.
        self.popups['finish_helicase'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/finish_helicase.png'),
            position=(640, 360))
        self.popups['fail_helicase'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/fail_helicase.png'),
            position=(640, 360))
        self.popups['finish_pp'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/finish_pp.png'),
            position=(640, 360))
        self.popups['fail_pp'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/fail_pp.png'),
            position=(640, 360))
        self.popups['finish_ligase'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/finish_ligase.png'),
            position=(640, 360))
        self.popups['fail_ligase'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/fail_ligase.png'),
            position=(640, 360))

        for pop in self.popups.values():
            self.add(pop, 4)
            pop.do(Hide())

        self.case = self.profile.information['case']

        self.pos = [600, 0]

        self.life_num = self.profile.get_lives()
        print('new life number', self.life_num)
        self.lives = cocos.sprite.Sprite(
            pyglet.image.load('../res/lives_' + str(self.life_num) + '.png'),
            position=(224, 637))

        self.scroller = cocos.layer.ScrollingManager()
        self.MGLayer = MainGameLayer(self.director, self.scroller, self,
                                     self.case, self.profile, self.dna)

        back_button = Button(1199, 658, '../res/back_button.png', self,
                             self.back)
        back_button.setHasHighlight('../res/back_button_h.png')

        left_button = Button(1050, 90, '../res/BUTTON LEFT.png', self,
                             self.set_pos_left)
        left_button.setHasHighlight('../res/BUTTON LEFT HIGHLIGHTED.png')
        right_button = Button(1190, 90, '../res/BUTTON RIGHT.png', self,
                              self.set_pos_right)
        right_button.setHasHighlight('../res/BUTTON RIGHT HIGHLIGHTED.png')

        self.add(back_button, z=1)
        self.add(left_button, z=1)
        self.add(right_button, z=1)
        self.add(self.lives, z=1)
        self.scroller.add(self.MGLayer, z=0)
        self.add(self.scroller, z=0)

        # initial view position
        self.scroller.set_focus(*self.pos)
예제 #3
0
class InventoryLayer(cocos.layer.ColorLayer):

    is_event_handler = False

    # init

    def __init__(self, scroller, target, width=1280, height=720):
        super().__init__(57, 67, 63, 0, width=width, height=height)

        picDir = '../res/inventory.png'

        self.scroller = scroller
        self.opacity = 0
        self.target = target

        self.image = pyglet.image.load(picDir)
        self.spr = cocos.sprite.Sprite(self.image, position=(640, 360))

        self.backButton = Button(1070, 627, '../res/inventory_back.png', self,
                                 self.hide)
        self.backButton.setHasHighlight('../res/inventory_back_h.png')

        self.highlight = False
        self.onHover = False
        self.highlight = True

        self.add(self.backButton, 1)
        self.add(self.spr, 0)

        self.spr.do(Hide())
        self.backButton.spr.do(Hide())
        # self.target.unshow()

    # setters/getters
    def setHasHighlight(self, picDir):
        self.highlight = True

    def setTarget(self, target):
        self.target = target

    # methods
    def on_mouse_motion(self, x, y, dx, dy):

        pass

        # x,y = self.scroller.screen_to_world(x,y)

        # if (not self.onHover) and self.target.contains(x,y):
        #     self.onHover = True
        #     if self.highlight:
        #         self.opacity = 70
        #         # self.spr.do(Show())

        # elif self.onHover and (not self.target.contains(x,y)):
        #     self.onHover = False
        #     if self.highlight:
        #         self.opacity = 0
        # self.spr.do(Hide())

    def on_mouse_press(self, x, y, button, mod):
        # if self.onHover:
        #     self.spr.do(Show())

        pass

    def show(self):
        InventoryLayer.is_event_handler = True
        self.opacity = 70
        self.spr.do(Show())
        self.backButton.spr.do(Show())

    def hide(self):
        InventoryLayer.is_event_handler = False
        self.opacity = 0
        self.spr.do(Hide())
        self.backButton.spr.do(Hide())

    def setSprite(self, img):
        self.spr.image = img