draft tutorial revisions
This commit is contained in:
parent
838da4571d
commit
48359b5a48
70 changed files with 6216 additions and 28 deletions
69
docs/cookbook/ui/ui_modal_dialog_basic.py
Normal file
69
docs/cookbook/ui/ui_modal_dialog_basic.py
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
"""McRogueFace - Modal Dialog Widget (basic)
|
||||
|
||||
Documentation: https://mcrogueface.github.io/cookbook/ui_modal_dialog
|
||||
Repository: https://github.com/jmccardle/McRogueFace/blob/master/docs/cookbook/ui/ui_modal_dialog_basic.py
|
||||
|
||||
This code is extracted from the McRogueFace documentation and can be
|
||||
run directly with: ./mcrogueface path/to/this/file.py
|
||||
"""
|
||||
|
||||
import mcrfpy
|
||||
|
||||
# Scene setup
|
||||
mcrfpy.createScene("game")
|
||||
mcrfpy.setScene("game")
|
||||
ui = mcrfpy.sceneUI("game")
|
||||
|
||||
# Game background
|
||||
bg = mcrfpy.Frame(0, 0, 1024, 768)
|
||||
bg.fill_color = mcrfpy.Color(25, 35, 45)
|
||||
ui.append(bg)
|
||||
|
||||
title = mcrfpy.Caption("My Game", mcrfpy.default_font, 450, 50)
|
||||
title.fill_color = mcrfpy.Color(255, 255, 255)
|
||||
ui.append(title)
|
||||
|
||||
# Quit button
|
||||
quit_btn = mcrfpy.Frame(430, 400, 160, 50)
|
||||
quit_btn.fill_color = mcrfpy.Color(150, 50, 50)
|
||||
quit_btn.outline = 2
|
||||
quit_btn.outline_color = mcrfpy.Color(200, 100, 100)
|
||||
ui.append(quit_btn)
|
||||
|
||||
quit_label = mcrfpy.Caption("Quit Game", mcrfpy.default_font, 460, 415)
|
||||
quit_label.fill_color = mcrfpy.Color(255, 255, 255)
|
||||
ui.append(quit_label)
|
||||
|
||||
# Confirmation dialog
|
||||
confirm_dialog = None
|
||||
|
||||
def show_quit_confirm():
|
||||
global confirm_dialog
|
||||
|
||||
def on_response(index, label):
|
||||
if label == "Yes":
|
||||
mcrfpy.exit()
|
||||
|
||||
confirm_dialog = EnhancedDialog(
|
||||
"Quit Game?",
|
||||
"Are you sure you want to quit?\nUnsaved progress will be lost.",
|
||||
["Yes", "No"],
|
||||
DialogStyle.WARNING,
|
||||
on_response
|
||||
)
|
||||
confirm_dialog.add_to_scene(ui)
|
||||
confirm_dialog.show()
|
||||
|
||||
quit_btn.click = lambda x, y, b, a: show_quit_confirm() if a == "start" else None
|
||||
|
||||
def on_key(key, state):
|
||||
if state != "start":
|
||||
return
|
||||
|
||||
if confirm_dialog and confirm_dialog.handle_key(key):
|
||||
return
|
||||
|
||||
if key == "Escape":
|
||||
show_quit_confirm()
|
||||
|
||||
mcrfpy.keypressScene(on_key)
|
||||
Loading…
Add table
Add a link
Reference in a new issue