menu.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:cyberlab 作者: kuroneko1996 项目源码 文件源码
def events(self):
        self.updated = False
        action = None

        for event in pg.event.get():
            if event.type == pg.QUIT:
                quit_game(self)
            # keyboard
            if event.type == pg.KEYDOWN:
                if event.key == pg.K_ESCAPE:
                    quit_game(self)
                if event.key == pg.K_DOWN:
                    action = 'down'
                if event.key == pg.K_UP:
                    action = 'up'
                if event.key == pg.K_RETURN:
                    action = 'enter'
            # mouse
            if event.type == pg.MOUSEMOTION:
                self.mousex, self.mousey = pg.mouse.get_pos()
                for i in range(len(self.menu_rects.items())):
                    if self.menu_rects[i].collidepoint(self.mousex, self.mousey):
                        self.menu['selected_option'] = i
                        self.updated = True
                        break
            if event.type == pg.MOUSEBUTTONDOWN:
                for i in range(len(self.menu_rects.items())):
                    if self.menu_rects[i].collidepoint(self.mousex, self.mousey):
                        action = 'enter'
                        break
            # joystick
            if event.type == pg.JOYBUTTONDOWN:
                if event.button == J_BUTTONS['A']:
                    action = 'enter'
            if event.type == pg.JOYAXISMOTION:
                if event.dict['axis'] == 1:
                    if time.time() >= self.last_axis_motion + 0.3:
                        if event.dict['value'] < -JOYSTICK_THRESHOLD:
                            action = 'up'
                            self.last_axis_motion = time.time()
                        elif event.dict['value'] > JOYSTICK_THRESHOLD:
                            action = 'down'
                            self.last_axis_motion = time.time()

        if action == 'down':
            self.menu["selected_option"] += 1
            self.menu["selected_option"] %= len(self.menu["options"])
            self.updated = True
        elif action == 'up':
            self.menu["selected_option"] -= 1
            self.menu["selected_option"] %= len(self.menu["options"])
            self.updated = True
        elif action == 'enter':
            self.menu["options"][self.menu["selected_option"]]["func"](self)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号