dispatcher.py 文件源码

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

项目:Peppy 作者: project-owner 项目源码 文件源码
def dispatch(self, player, shutdown):
        """ Dispatch events.  

        Runs the main event loop. Redirects events to corresponding handler.
        Distinguishes four types of events:
        - Quit event - when user closes window (Windows only)
        - Keyboard events
        - Mouse events
        - User Events    

        :param player: reference to player object
        "param shutdown: shutdown method to use when user exits
        """        
        self.player = player
        self.shutdown = shutdown
        mouse_events = [pygame.MOUSEBUTTONDOWN, pygame.MOUSEBUTTONUP, pygame.MOUSEMOTION]
        pygame.event.clear()
        clock = Clock()        

        while self.run_dispatcher:
            for event in pygame.event.get():
                s = str(event)
                logging.debug("Received event: %s", s) 
                if event.type == pygame.QUIT:
                    self.shutdown(event) 
                elif (event.type == pygame.KEYDOWN or event.type == pygame.KEYUP) and not self.config[USAGE][USE_LIRC]:
                    self.handle_keyboard_event(event)                                
                elif event.type in mouse_events or event.type == USER_EVENT_TYPE:
                    self.handle_event(event)                    
            if self.lirc != None:
                code = self.lirc.nextcode()
                if code != None:
                    self.handle_lirc_event(code)
            self.current_screen.refresh()
            self.screensaver_dispatcher.refresh()
            clock.tick(self.frame_rate)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号