def generate_bars(self, sizes): """ creates the bars if they aren't already, else updates them :param sizes: sizes of bars :return: """ bar_width = self.surface.get_rect().size[0] / self.size for i, y in enumerate(sizes): try: bar = self.bars[y] bar.position = Vector2D.custom(self.surface, i * bar_width, y - 1, inverty=True) continue except KeyError: bar = Rectangle(Vector2D.custom(self.surface, i * bar_width, y - 1, inverty=True), Vector2D(bar_width, y), color=Color.lerp(y / self.max, colors.RED, colors.GREEN, colors.BLUE) if self.color is None else self.color) self.bars[y] = bar
def _update_change(self, bar_width, sizes, color): for i, y in sizes: bar = self.bars[y] bar.position = Vector2D.custom(self.surface, i * bar_width, y - 1, inverty=True) # highlight the bar bar.color = color self.previous_changed.append(y)
framerate = 0 t0 = time.time() while True: for event in pygame.event.get(): if event.type == pygame.QUIT: AppDatabase.database().save() sys.exit() grid.event(event) manager.event(event) screen.fill(colors.BLACK) grid.update() grid.draw(screen) manager.update() manager.draw(screen) t1 = time.time() framerate = 1 / (t1 - t0) t0 = t1 Text(f'{framerate:.2f} fps', position=Vector2D.custom(screen.get_rect().size, 60, 0, invertx=True), color=colors.WHITE).draw(screen) pygame.display.flip()
manager = WidgetManager([info]) grid = GridManager(Vector2D(40, 40), info) framerate = 0 t0 = time.time() while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() grid.event(event) manager.event(event) screen.fill(colors.BLACK) grid.update() grid.draw(screen) manager.update() manager.draw(screen) t1 = time.time() framerate = 1 / (t1 - t0) t0 = t1 Text(f'{framerate:.2f} fps', position=Vector2D.custom(screen, 60, 0, invertx=True), color=colors.WHITE).draw(screen) pygame.display.flip()