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
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
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
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
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()