class VolumeControl(Slider): def __init__(self): Slider.__init__(self) self.percent_label = Label((0,0), '', (255, 255, 255), 30) def set_layout_data(self, position, slider_width): Slider.set_layout_data(self, position, slider_width) y_delta = self.center()[1] - self.percent_label.center()[1] x_delta = self.position[0] + self.width - self.percent_label.position[0] y_position = self.center()[1] - (.5 * self.percent_label.height) self.percent_label.shift(x_delta + 7, y_delta + 4) def handle_events(self): Slider.handle_events(self) self.percent_label.set_text(str(int(100 * self.get_scroll_percent())) + '%') def draw(self, surface): Slider.draw(self, surface) self.percent_label.draw(surface) def draw_relative(self, surface, position): Slider.draw_relative(self, surface, position) self.percent_label.draw_relative(surface, position)
screen = pygame.display.set_mode((800, 600)) clock = pygame.time.Clock() slider = VolumeControl() slider.create_children() slider.set_layout_data((300, 100), 300) scroll_percent = Label((10,10),'',(0,0,255)) slider.set_scroll_percent(.5) while True: wotsuievents.get_events() events = wotsuievents.events event_types = wotsuievents.event_types mousePos = wotsuievents.mouse_pos mouseButtonsPressed = wotsuievents.mouse_buttons_pressed if pygame.QUIT in event_types: sys.exit() slider.handle_events() scroll_percent.set_text(str(slider.get_scroll_percent())) screen.fill((0,0,0)) slider.draw(screen) scroll_percent.draw(screen) pygame.display.update() clock.tick(20)
field.gravity_tiles = [] for row in field.tiles: for tile in row: tile.acceleration[0] = 0 tile.acceleration[1] = 0 tile.gravity = 0 elif pygame.K_e in wotsuievents.keys_pressed: field.gravity_tiles = [] for row in field.tiles: for tile in row: tile.acceleration[0] = .015 tile.acceleration[1] = random() / 80 tile.gravity = 0 frame_rate_label.set_text("frame rate: " + str(clock.get_fps())) new_rects.append((frame_rate_label.position, (frame_rate_label.width, frame_rate_label.height))) if field.contains(wotsuievents.mouse_pos): mouse_position_label.set_text("mouse position: " + str(wotsuievents.mouse_pos)) tile = field.get_tile(wotsuievents.mouse_pos) tile_position_label.set_text("tile position: " + str(field.get_absolute_position(tile.position))) acceleration_label.set_text("tile acceleration: " + str(tile.acceleration)) gravity_label.set_text("tile gravity: " + str(tile.gravity)) else: mouse_position_label.set_text("mouse position: " + str(wotsuievents.mouse_pos)) tile = field.get_tile(wotsuievents.mouse_pos) tile_position_label.set_text("tile position:") acceleration_label.set_text("tile acceleration:") gravity_label.set_text("tile gravity:")