# -*- coding: utf-8 -*- from datetime import datetime, timedelta import os import sys import time if os.getcwd() not in sys.path: sys.path.insert(0, os.getcwd()) from pie_time import PieTime from pie_time.cards import ClockCard from pie_time.card import AbstractCard import pygame class ExampleCard(AbstractCard): def initialize(self): self.sprite = pygame.surface.Surface((20, 20)) self.sprite.fill((255, 0, 0)) self.orig_sprite_rect = self.sprite.get_rect() self.orig_speed = [2, 2] self.sprite_rect = self.orig_sprite_rect self.speed = self.orig_speed def show(self): self.sprite_rect = self.orig_sprite_rect self.speed = self.orig_speed def tick(self): self.sprite_rect = self.sprite_rect.move(self.speed) if self.sprite_rect.left < 0 or self.sprite_rect.right > self.width: self.speed[0] = -self.speed[0] if self.sprite_rect.top < 0 or self.sprite_rect.bottom > self.height: self.speed[1] = -self.speed[1] self.surface.fill(self.background_color) self.surface.blit(self.sprite, self.sprite_rect) class CustomApp(PieTime): def __init__(self, *args, **kwargs): super(CustomApp, self).__init__(*args, **kwargs) self._ctt_region_prev = pygame.Rect(0, 0, 160, 240) self._ctt_region_next = pygame.Rect(160, 0, 160, 240) def will_blank(self): self.logger.debug('CustomApp.will_blank') def will_unblank(self): self.logger.debug('CustomApp.will_unblank') deck = [ (ClockCard, 10), (ExampleCard, 10), ] app = CustomApp( deck, verbose=True, fps=40, blanker_schedule=( timedelta(hours=23), timedelta(hours=6) ), click_to_unblank_interval=10 ) if __name__ == '__main__': app.run()