ccpy.py 文件源码

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

项目:CCPY 作者: Admicos 项目源码 文件源码
def run(self):
        """ Run emulator """

        self.reboot_pc()

        is_input_capitalized = False

        # http://stackoverflow.com/a/28931488
        pygame.event.clear()
        while self.running:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.running = False
                elif event.type == pygame.KEYDOWN:
                    kc, kn = pygame_to_cc(pygame.key.name(event.key))

                    if kn == "caps lock":
                        is_input_capitalized = not is_input_capitalized
                        kn = ""
                    elif kn == "left shift" or kn == "right shift":
                        kn = ""
                        is_input_capitalized = True

                    if event.key == pygame.K_t and pygame.key.get_mods() & pygame.KMOD_CTRL:
                        self.computer.queue_event("terminate")
                        continue

                    if kc != 0: self.computer.queue_event("key", kc)
                    if kn != "": self.computer.queue_event("char", kn.upper() if is_input_capitalized else kn.lower())

                elif event.type == pygame.KEYUP:
                    kc, kn = pygame_to_cc(pygame.key.name(event.key))
                    if kn == "left shift" or kn == "right shift":
                        is_input_capitalized = False

                    if kc != 0: self.computer.queue_event("key_up", kc)
                elif event.type == pygame.MOUSEBUTTONDOWN:
                    self.computer.queue_event(
                        "mouse_click",
                        event.button,
                        int((event.pos[0] / self.display.get_width()) * self.cc_display.width) + 1,
                        int((event.pos[1] / self.display.get_height()) * self.cc_display.height) + 1
                    )

            pygame.event.clear()

            self.display.fill(DisplayColors.BLACK)

            self.computer.update()
            self.cc_display.draw()

            pygame.display.flip()
            self.clock.tick()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号