def loop(self): try: isGameRunning = True clock = pygame.time.Clock() lastTime = pygame.time.get_ticks() font = pygame.font.Font(None, 30) while isGameRunning: for event in pygame.event.get(): if event.type == MOUSEBUTTONDOWN: if not self.config.isTouch(): self.onMouseDown(event.pos) elif event.type == MOUSEBUTTONUP: if not self.config.isTouch(): self.onMouseUp(event.pos) elif event.type == KEYDOWN: if event.key == K_ESCAPE: isGameRunning = False if self.config.isTouch(): event = self.touchScreen.readUpDownEvent() while event is not None: if event['type'] == TouchScreen.DOWN_EVENT: self.onMouseDown(event['pos']) elif event['type'] == TouchScreen.UP_EVENT: self.onMouseUp(event['pos']) event = self.touchScreen.readUpDownEvent() if not self.config.isTouch(): self.onMouseMove(pygame.mouse.get_pos()) else: pos = self.touchScreen.getPosition() self.onMouseMove(pos) self.screen.fill([0, 0, 0]) currTime = pygame.time.get_ticks() dt = currTime - lastTime lastTime = currTime self.draw(dt / 1000) if not self.config.isTouch() and self.blitCursor: self.screen.blit(self.cursor, (pygame.mouse.get_pos())) if self.config.showFPS(): fps = font.render(str(int(clock.get_fps())), True, Color('white')) self.screen.blit(fps, (50, 50)) pygame.display.flip() clock.tick(60) pygame.quit() except Exception as e: Log.getLogger().exception('ERROR,Error occured!')
def start(self): self.buttons = [] self.blitCursor = True self.config = Config(CONFIG_FILENAME) pygame.mixer.pre_init(44100, -16, 1, 512) pygame.init() pygame.mouse.set_visible(False) self.loadFonts() self.screen = pygame.display.set_mode((1920, 1080), pygame.FULLSCREEN) self.cursor = pygame.image.load( 'assets/images/cursor.png').convert_alpha() self.touchScreen = None if self.config.isTouch(): print("Loading touch screen...") self.touchScreen = TouchScreen( self.config.getTouchDevicePartialName(), (self.config.getTouchScreenMaxX(), self.config.getTouchScreenMaxY())) if not self.touchScreen.setup(): self.config.setTouch(False) self.background = pygame.image.load( 'assets/images/background.png').convert() self.dotImage = pygame.image.load( 'assets/images/dot-normal.png').convert_alpha() self.dotTappedImage = pygame.image.load( 'assets/images/dot-tapped.png').convert_alpha() self.dotSelectedImage = pygame.image.load( 'assets/images/dot-selected.png').convert_alpha() languageButtonImage = pygame.image.load( 'assets/images/language-button-normal.png').convert() languageButtonTappedImage = pygame.image.load( 'assets/images/language-button-tapped.png').convert() languageButtonSelectedImage = pygame.image.load( 'assets/images/language-button-selected.png').convert() self.languageButtons = [] for i in range(len(self.config.getLanguages())): language = self.config.getLanguages()[i] languageFont = pygame.font.Font( language['fonts']['textFont']['filename'], language['fonts']['textFont']['size']) languageButton = LanguageButton( self.screen, Rect(i * 63 + 15, 1010, languageButtonImage.get_width(), languageButtonImage.get_height()), languageButtonImage, languageButtonTappedImage, languageButtonSelectedImage, language['buttonText'], DOT_TEXT_COLOR, DOT_SELECTED_TEXT_COLOR, DOT_SELECTED_TEXT_COLOR, languageFont, partial(self.languageClicked, i)) if language['prefix'] == self.config.languagePrefix: languageButton.visible = False self.languageButtons.append(languageButton) self.buttons.append(languageButton) self.dots = self.config.getDots() self.dotButtons = [] for i in range(len(self.dots)): dot = self.dots[i] x = dot['x'] y = dot['y'] dotButton = Button( self.screen, Rect(x - self.dotImage.get_width() // 2, y - self.dotImage.get_height() // 2, self.dotImage.get_width(), self.dotImage.get_height()), self.dotImage, self.dotTappedImage, str(i + 1), DOT_TEXT_COLOR, DOT_SELECTED_TEXT_COLOR, self.numbersFont, partial(self.dotClicked, i), 1.5) self.dotButtons.append(dotButton) self.buttons.append(dotButton) self.selectedDotIndex = 0 self.loadDot() Log.getLogger().info('INIT') self.loop()
def __init__(self): Log.init(LOG_FILE_PATH) Log.getLogger().info('START') self.touchPos = (0, 0)
def languageClicked(self, index): self.config.changeLanguage(index) Log.getLogger().info('LANGUAGE_CHANGED,' + self.config.languagePrefix) self.loadFonts() self.onLanguageChanged() self.loadDot()
def dotClicked(self, index): Log.getLogger().info('DOT_CLICKED,' + str(index + 1)) self.selectedDotIndex = index self.loadDot()