Я новичок в Pygame и пытался разработать скелетную программу, которую я нашел в Интернете. Проблема в том, что после успешного изменения цвета фона по требованию я также попытался изменить цвет шрифта. Сам код работает без ошибок, однако цвет не меняется.
Это код ниже:
from random import *
import pygame
import pygameMenu
pygame.init()
COLOR_BACKGROUND = []
WINDOW_SIZE = (640, 480)
COLOR_BLACK = (0, 0, 0)
COLOR_WHITE = (255, 255, 255)
MENU_BACKGROUND_COLOR = (228, 100, 36)
FONT_COLOUR = (0, 0, 0)
FONT = pygameMenu.font.FONT_HELVETICA
surface = pygame.display.set_mode(WINDOW_SIZE)
def main_background():
global surface
surface.fill(COLOR_BLACK)
def nothing():
pass
def change_color_bg(value, c=None):
color, _ = value
if c == (-1, -1, -1): # If random color
c = (randrange(0, 255), randrange(0, 255), randrange(0, 255))
surface.fill((c[0], c[1], c[2]))
pygame.display.flip()
def change_color_font(value, c=None):
global FONT_COLOUR
global FONT
color, _ = value
if c == (-1, -1, -1): # If random color
c = (randrange(0, 255), randrange(0, 255), randrange(0, 255))
FONT_COLOUR = (c[0], c[1], c[2])
pygame.font.init()
def main(test=False):
options_menu = pygameMenu.Menu(surface,
bgfun=nothing,
color_selected=COLOR_WHITE,
window_width=WINDOW_SIZE[0],
window_height=WINDOW_SIZE[1],
font=FONT,
font_size=25,
font_color=FONT_COLOUR,
font_size_title=50,
menu_alpha=100,
menu_color=MENU_BACKGROUND_COLOR,
menu_height=int(WINDOW_SIZE[1] * 0.85),
menu_width=int(WINDOW_SIZE[0] * 0.9),
onclose=pygameMenu.events.DISABLE_CLOSE,
title='Options',
widget_alignment=pygameMenu.locals.ALIGN_LEFT,
)
# Add selector
options_menu.add_selector('Change background color',
[('Random', (-1, -1, -1)),
('Default', (128, 0, 128)),
('Black', (0, 0, 0)),
('Blue', (135, 206, 250))],
onchange=change_color_bg)
options_menu.add_selector('Change font color',
[('Random', (-1, -1, -1)),
('Default', (128, 0, 128)),
('Black', (0, 0, 0)),
('Blue', (135, 206, 250))],
onchange=change_color_font)
options_menu.add_option('Go to Menu', pygameMenu.events.EXIT)
options_menu.add_option('Leave', pygameMenu.events.EXIT)
while True:
main_background()
options_menu.mainloop(disable_loop=test)
if test:
break
if __name__ == '__main__':
main()
Буду признателен за любую помощь:)