Пример #1
0
    def __init__(self,
                 text: Text,
                 size: Vector2D = None,
                 position: Vector2D = Vector2D.zero(),
                 color: Color = None,
                 onclick=None):
        super(Button, self).__init__()

        # look
        self.text = text
        self.size = size
        if self.size is None:
            self.size = Vector2D(100, 35)
        self._position = position

        self.text.center(Vector2D.center(self.position, self.size))

        # color
        if color is None:
            color = colors.TRANSPARENT
        self._mutable_color = color
        self._original_color = color

        # behaviour
        self.onhover = Hover(DIM_LIGHT, ORIGINAL_COLOR)
        self.onclick = onclick

        if self.onclick is None:
            self.onclick = lambda button: None
Пример #2
0
    def __init__(self,
                 state,
                 gridpos: Vector2D,
                 size: Vector2D = None,
                 position: Vector2D = Vector2D.zero(),
                 onclick=None):
        super(Tile, self).__init__(Text(''), size, position, state, onclick)

        self.gridpos = gridpos
Пример #3
0
    def __init__(self, text, size=14, italic=False, position=Vector2D.zero(), color: Color = colors.BLACK, font: Font = Roboto.MEDIUM):
        super(Text, self).__init__()

        self._text = text
        self._color = color

        self.font = font.get(size, italic)
        self.surface = self.font.render(text, True, color)
        self.position = position
        self.autocenter = False
Пример #4
0
    def remake_tiles(self, grid):
        """
        recreates the whole tile grid for :param grid:

        :param grid: blueprint for recreation
        :return: None
        """
        size = Vector2D(len(grid), len(grid[0]))

        for x in range(size.x):
            for y in range(size.y):
                position = Vector2D(
                    y * self.tilesize.x + y * self.tilepadding.x + self.position.x + self.padding.x,
                    x * self.tilesize.y + x * self.tilepadding.y + self.position.y + self.padding.y,
                )

                tile = Tile(Tile.int_to_state(self.grid[x][y]), gridpos=Vector2D(x, y), position=position,
                            padding=Vector2D.zero())

                tile.size = self.tilesize

                self.tiles[x][y] = tile
Пример #5
0
    def __init__(self, text: Text, padding: Vector2D = Vector2D(20, 10), position: Vector2D = Vector2D.zero(),
                 color: Color = None,
                 onclick=None):
        super(Button, self).__init__()

        # look
        self.text = text
        self._position = position

        self.padding = padding
        self._size = Vector2D(
            self.text.rect.size[0] + self.padding.x,
            self.text.rect.size[1] + self.padding.y
        )

        self.text.center(Vector2D.center(self.position, self.size))

        # color
        if color is None:
            color = colors.TRANSPARENT
        self._mutable_color = color
        self._original_color = color

        # behaviour
        self.onhover = Hover(DIM_LIGHT, ORIGINAL_COLOR)
        self.onclick = onclick

        if self.onclick is None:
            self.onclick = lambda button: None

        # used to draw
        self.surface = self.make()