import
pygame
import
pygame_menu as pm
pygame.init()
WIDTH, HEIGHT
=
700
,
600
screen
=
pygame.display.set_mode((WIDTH, HEIGHT))
RED
=
(
255
,
0
,
0
)
GREEN
=
(
0
,
255
,
0
)
BLUE
=
(
0
,
0
,
255
)
CYAN
=
(
0
,
100
,
100
)
BLACK
=
(
0
,
0
,
0
)
WHITE
=
(
255
,
255
,
255
)
def
main():
graphics
=
[(
"Low"
,
"low"
),
(
"Medium"
,
"medium"
),
(
"High"
,
"high"
),
(
"Ultra High"
,
"ultra high"
)]
resolution
=
[(
"1920x1080"
,
"1920x1080"
),
(
"1920x1200"
,
"1920x1200"
),
(
"1280x720"
,
"1280x720"
),
(
"2560x1440"
,
"2560x1440"
),
(
"3840x2160"
,
"3840x2160"
)]
difficulty
=
[(
"Easy"
,
"Easy"
),
(
"Medium"
,
"Medium"
),
(
"Expert"
,
"Expert"
)]
perspectives
=
[(
"FPP"
,
"fpp"
),
(
"TPP"
,
"tpp"
)]
def
printSettings():
print
(
"\n\n"
)
settingsData
=
settings.get_input_data()
for
key
in
settingsData.keys():
print
(f
"{key}\t:\t{settingsData[key]}"
)
settings
=
pm.Menu(title
=
"Settings"
,
width
=
WIDTH,
height
=
HEIGHT,
theme
=
pm.themes.THEME_GREEN)
settings._theme.widget_font_size
=
25
settings._theme.widget_font_color
=
BLACK
settings._theme.widget_alignment
=
pm.
locals
.ALIGN_LEFT
settings.add.text_input(title
=
"User Name : "
, textinput_id
=
"username"
)
settings.add.dropselect(title
=
"Graphics Level"
, items
=
graphics,
dropselect_id
=
"graphics level"
, default
=
0
)
settings.add.dropselect_multiple(title
=
"Window Resolution"
, items
=
resolution,
dropselect_multiple_id
=
"Resolution"
,
open_middle
=
True
, max_selected
=
1
,
selection_box_height
=
6
)
settings.add.toggle_switch(
title
=
"Muisc"
, default
=
True
, toggleswitch_id
=
"music"
)
settings.add.toggle_switch(
title
=
"Sounds"
, default
=
False
, toggleswitch_id
=
"sound"
)
settings.add.selector(title
=
"Difficulty\t"
, items
=
difficulty,
selector_id
=
"difficulty"
, default
=
0
)
settings.add.range_slider(title
=
"FOV"
, default
=
60
, range_values
=
(
50
,
100
), increment
=
1
, value_format
=
lambda
x:
str
(
int
(x)), rangeslider_id
=
"fov"
)
settings.add.selector(title
=
"Perspective"
, items
=
perspectives,
default
=
0
, style
=
"fancy"
, selector_id
=
"perspective"
)
settings.add.clock(clock_format
=
"%d-%m-%y %H:%M:%S"
,
title_format
=
"Local Time : {0}"
)
settings.add.button(title
=
"Print Settings"
, action
=
printSettings,
font_color
=
WHITE, background_color
=
GREEN)
settings.add.button(title
=
"Restore Defaults"
, action
=
settings.reset_value,
font_color
=
WHITE, background_color
=
RED)
settings.add.button(title
=
"Return To Main Menu"
,
action
=
pm.events.BACK, align
=
pm.
locals
.ALIGN_CENTER)
mainMenu
=
pm.Menu(title
=
"Main Menu"
,
width
=
WIDTH,
height
=
HEIGHT,
theme
=
pm.themes.THEME_GREEN)
mainMenu._theme.widget_alignment
=
pm.
locals
.ALIGN_CENTER
mainMenu.add.button(title
=
"Settings"
, action
=
settings,
font_color
=
WHITE, background_color
=
GREEN)
mainMenu.add.label(title
=
"")
mainMenu.add.button(title
=
"Exit"
, action
=
pm.events.EXIT,
font_color
=
WHITE, background_color
=
RED)
mainMenu.mainloop(screen)
if
__name__
=
=
"__main__"
:
main()