def draw_main_menu(game_state): buttons, button_size, text_starting_place, text_ending_place = create_buttons( [config.menu_title_text] + config.menu_buttons, [config.get_default_font(config.menu_title_font_size)] + [config.get_default_font(config.menu_option_font_size)] * 3, [config.menu_text_color] * 4, [config.menu_text_color] + [config.menu_text_selected_color] * 3) draw_rects(button_size, buttons, game_state, text_starting_place, emit=[0]) button_clicked = iterate_until_button_press(buttons, game_state, text_ending_place, text_starting_place) return button_clicked
def game_over(self, p1_won): font = config.get_default_font(config.game_over_label_font_size) if p1_won: text = "PLAYER 1 WON!" else: text = "PLAYER 2 WON!" rendered_text = font.render(text, False, (255, 255, 255)) self.canvas.surface.blit(rendered_text, (config.resolution - font.size(text)) / 2) pygame.display.flip() pygame.event.clear() paused = False # while paused: # event = pygame.event.wait() # if event.type == pygame.QUIT or event.type == pygame.KEYDOWN or event.type == pygame.MOUSEBUTTONDOWN: # paused = False self.is_game_over = True
def __init__(self, table_size, color, table_points): pygame.sprite.Sprite.__init__(self) self.points = table_points self.image = pygame.Surface(table_size) self.image.fill(color) color_key = (200, 200, 200) self.image.set_colorkey(color_key) pygame.draw.polygon(self.image, color_key, table_points) self.rect = self.image.get_rect() self.font = config.get_default_font(config.ball_radius) self.target_ball_text = [ self.font.render(config.player1_target_text, False, config.player1_cue_color), self.font.render(config.player2_target_text, False, config.player2_cue_color) ]
def game_over(self, p1_won): font = config.get_default_font(config.game_over_label_font_size) if p1_won: text = "Первый игрок выиграл!" else: text = "Второй игрок выиграл!" rendered_text = font.render(text, False, (255, 0, 0)) self.canvas.surface.blit(rendered_text, (config.resolution - font.size(text)) / 2) pygame.display.flip() pygame.event.clear() paused = True while paused: event = pygame.event.wait() if event.type == pygame.QUIT or event.type == pygame.KEYDOWN or event.type == pygame.MOUSEBUTTONDOWN: paused = False self.is_game_over = True
def __init__(self, ball_number): self.number = ball_number self.color = config.ball_colors[ball_number] if ball_number <= 8: self.ball_type = BallType.Solid self.ball_stripe = SolidBall() else: self.ball_type = BallType.Striped self.ball_stripe = StripedBall() self.ball = Ball() pygame.sprite.Sprite.__init__(self) self.label_offset = np.array([0, 0, config.ball_radius]) self.label_size = config.ball_radius // 2 font_obj = config.get_default_font(config.ball_label_text_size) self.text = font_obj.render(str(ball_number), False, (0, 0, 0)) self.text_length = np.array(font_obj.size(str(ball_number))) self.update_sprite() self.update() self.rect.center = self.ball.pos.tolist()