예제 #1
0
파일: 08b15.py 프로젝트: tfari/08b15
class Main(object):
    """
    Main class for 08b15.
    """
    def __init__(self, size):
        """
        :param size: tuple
        """
        self.size = size
        self.running = True

        self.document = Document(self.size)
        self.screen_handler = ScreenHandler(self.size)
        self.input_handler = InputHandler()

        self.using_mode = 0
        pygame.display.set_mode(size)

    def run(self):
        """
        :return: None
        """
        while self.running:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.running = False
                else:
                    self.input_handler.catch(event, self.screen_handler,
                                             self.document, self)

            self.update_screen()

    def update_screen(self):
        """
        :return: None
        """
        self.screen_handler.draw_screen(self.document, self.using_mode)
        pygame.display.update()

    def save_screen(self):
        """
        Saves screenshot into /screens
        :return: None
        """
        path = 'screens/output_%s.png' % str(
            datetime.datetime.now())[:-7].replace(":", ",")

        save_screen = pygame.Surface(
            (self.screen_handler.size[0] * 2, self.screen_handler.size[1] * 2))

        save_screen.blit(self.screen_handler.screen, (0, 0))
        save_screen.blit(
            pygame.transform.flip(self.screen_handler.screen, 0, 1),
            (0, self.screen_handler.size[1]))
        save_screen.blit(
            pygame.transform.flip(self.screen_handler.screen, 1, 0),
            (self.screen_handler.size[0], 0))
        save_screen.blit(
            pygame.transform.flip(self.screen_handler.screen, 1, 1),
            (self.screen_handler.size[0], self.screen_handler.size[1]))

        pygame.image.save(save_screen, path)