Skip to content

Instantly share code, notes, and snippets.

@horstjens
Created March 3, 2025 17:31
Show Gist options
  • Save horstjens/2209c230980f98e515b0f83bc2d5ece2 to your computer and use it in GitHub Desktop.
Save horstjens/2209c230980f98e515b0f83bc2d5ece2 to your computer and use it in GitHub Desktop.
freesimplegui character chooser
import FreeSimpleGUI as sg
#sg.popup_ok("hallo")
database = {
"player": {
"name":"player",
"filename":"player1.png",
"attack":15,
"defense":21,
"hitpoints":12,
"luck":3,
},
"enemy": {
"name":"enemy",
"filename":"enemy1.png",
"attack":20,
"defense":10,
"hitpoints":5,
"luck":1,
},
}
col_left = sg.Column(layout = [
[sg.Image(source="player1.png", key="image")],
])
col_right = sg.Column(layout=[
[sg.Text("name:"), sg.Push(), sg.Text("?",key="name",justification="r" ),],
[sg.Text("attack:"),sg.Push(),sg.Text("?", key="attack"),],
[sg.Text("defense:"),sg.Push(),sg.Text("?", key="defense"),],
[sg.Text("hitpoints:"),sg.Push(),sg.Text("?", key="hitpoints"),],
[sg.Text("luck:"),sg.Push(),sg.Text("?", key="luck"),],
])
layout = [
[sg.Text("choose your character:")],
[col_left, col_right],
[sg.Button("previous"),
sg.Button("ok"),
sg.Button("next")],
[sg.Button("Cancel")],
]
window = sg.Window("my game", layout=layout)
selection = "player"
def update_stats():
window["image"].update(source=selection+"1.png")
for attr in ("name","attack",
"defense","hitpoints","luck"):
window[attr].update(database[selection][attr])
while True:
event, values = window.read()
if event in ("Cancel", sg.WIN_CLOSED):
break
if event == "next":
if selection == "player":
selection = "enemy"
elif selection == "enemy":
selection = "player"
update_stats()
window.close()
print("bye")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment