Example #1
0
class DemoRenderable(Renderable):
    def __init__(self, f):
        self.f = pygame.image.load(f)
        self._position = Position()

        self.logger = logging.getLogger(__name__)

    @property
    def surface(self):
        return self.f

    @property
    def position(self):
        return self._position

    def handle_keypressed(self, event):
        if event[pygame.K_UP]:
            self.logger.info("KEYDOWN UP")
            self._position.shift(0, -1)
        if event[pygame.K_DOWN]:
            self.logger.info("KEYDOWN DOWN")
            self._position.shift(0, 1)
        if event[pygame.K_RIGHT]:
            self.logger.info("KEYDOWN RIGHT")
            self._position.shift(1, 0)
        if event[pygame.K_LEFT]:
            self.logger.info("KEYDOWN LEFT")
            self._position.shift(-1, 0)
def test_layer_scaling():
    layer: Layer = Layer(motion_scale=(2, -2))
    dr = DemoRenderable(pygame.surface.Surface((10, 10)))

    ms = MockSurface((-10, 10))

    layer.add_renderable(dr)
    layer.blit(Position(5, 5), ms)
Example #3
0
    def handle_click(self, event: pygame.event.Event) -> bool:
        """
        Function which takes a click event as a parameter, checks if the position falls within the object's surface
        If the click hits this item, call the internal child implementation for __handle_click

        Returns true or false if the click was handled by this object; allowing for differing event consumption.
        """
        if self.position_intersects(Position(*event.pos)):
            self.__handle_click(event)
            return True
        return False
Example #4
0
    def handle_mousemove(self, event: pygame.event.Event) -> bool:
        """
        Function which takes a mouse move event as a parameter, checks if the position falls within the object's surface
        If the mousemove is in the region, update the internal hover state

        Returns true or false if the click was handled by this object; allowing for differing event consumption.
        """
        if self.position_intersects(Position(*event.pos)):
            self.__is_hovered = True
            self.__time_hovered = datetime.now()
            return True
        return False
Example #5
0
def test_position_shift():
    p = Position()
    p.shift(1, 1)

    assert p.x == 1
    assert p.y == 1

    p.shift(-2, -1)
    assert p.x == -1
    assert p.y == 0
Example #6
0
    def __init__(self, f):
        self.f = pygame.image.load(f)
        self._position = Position()

        self.logger = logging.getLogger(__name__)
 def __init__(self, f):
     self.f = f
     self._position = Position()
 def __init__(self, f, a):
     self.f = f
     self._position = Position()
     self._anchor = a
def test_position_intersects(anchor, test_click_position, expected):
    dr = DemoRenderable(pygame.surface.Surface((10, 10)), anchor)
    assert dr.position_intersects(Position(*test_click_position)) == expected
Example #10
0
 def position(self):
     return Position()
Example #11
0
 def __init__(self):
     self.position: Position = Position()
     self.layers: Dict[int, Layer] = {}
     self.ordered_priorities: List[int] = []