53 lines
1.2 KiB
Python
53 lines
1.2 KiB
Python
|
|
"""McRogueFace - Selection Menu Widget (basic)
|
||
|
|
|
||
|
|
Documentation: https://mcrogueface.github.io/cookbook/ui_menu
|
||
|
|
Repository: https://github.com/jmccardle/McRogueFace/blob/master/docs/cookbook/ui/ui_menu_basic.py
|
||
|
|
|
||
|
|
This code is extracted from the McRogueFace documentation and can be
|
||
|
|
run directly with: ./mcrogueface path/to/this/file.py
|
||
|
|
"""
|
||
|
|
|
||
|
|
import mcrfpy
|
||
|
|
|
||
|
|
# Setup
|
||
|
|
mcrfpy.createScene("main_menu")
|
||
|
|
mcrfpy.setScene("main_menu")
|
||
|
|
ui = mcrfpy.sceneUI("main_menu")
|
||
|
|
|
||
|
|
# Background
|
||
|
|
bg = mcrfpy.Frame(0, 0, 1024, 768)
|
||
|
|
bg.fill_color = mcrfpy.Color(20, 20, 35)
|
||
|
|
ui.append(bg)
|
||
|
|
|
||
|
|
# Title
|
||
|
|
title = mcrfpy.Caption("DUNGEON QUEST", mcrfpy.default_font, 350, 100)
|
||
|
|
title.fill_color = mcrfpy.Color(255, 200, 50)
|
||
|
|
ui.append(title)
|
||
|
|
|
||
|
|
# Menu
|
||
|
|
def start_game():
|
||
|
|
print("Starting game...")
|
||
|
|
|
||
|
|
def show_options():
|
||
|
|
print("Options...")
|
||
|
|
|
||
|
|
menu = Menu(
|
||
|
|
362, 250,
|
||
|
|
["New Game", "Continue", "Options", "Quit"],
|
||
|
|
lambda i, opt: {
|
||
|
|
0: start_game,
|
||
|
|
1: lambda: print("Continue..."),
|
||
|
|
2: show_options,
|
||
|
|
3: mcrfpy.exit
|
||
|
|
}.get(i, lambda: None)(),
|
||
|
|
title="Main Menu"
|
||
|
|
)
|
||
|
|
menu.add_to_scene(ui)
|
||
|
|
|
||
|
|
# Input
|
||
|
|
def on_key(key, state):
|
||
|
|
if state != "start":
|
||
|
|
return
|
||
|
|
menu.handle_key(key)
|
||
|
|
|
||
|
|
mcrfpy.keypressScene(on_key)
|