Bitte melden Sie sich an, um dieses Bild zu sehen.
Eine dynamische Sidebar, welche automatisch die Buttons für dich anordnet und eine Ausfahr- / Einfahranimation hat.
Ich habe das irgendwann mal aus Langeweile geschrieben, vielleicht braucht es ja jemand. Der Code ist komplett von
mir geschrieben. Bisher gibt es noch einige Magic Numbers die ich richtig implementieren werde, wenn danach verlangt wird.
Code-Optimierungen werden gerne übernommen.
interfacemodule.py
Oben in der Datei einfügen:
Suchen:
Darüber einfügen:
Suchen:
Darüber einfügen:
Suchen:
Darüber einfügen:
Suchen:
Darüber einfügen:
Tu die uidynamicsidebar.py in den root Ordner!
# Animation
IS_ANIMATED = True
Wie schnell soll die Animation sein (wie viele Pixel pro update)
ANIMATION_SPEED = 15
Wie viele Buttons pro Zeile bis eine neue Spalte genommen wird
MAX_ROW_COUNT = 7
Wie viele Pixel schaut das Fenster raus, wenn es zugeklappt ist
VISIBLE_WIDTH_ON_COLLAPSE = 8
Vergrößere die Maus-Hitbox (in Pixel)
HOVER_MARGIN = 0
- self.buttonConfig = [
- {
- "NORMAL": "d:/ymir work/ui/game/taskbar/character_button_01.sub", # Normal Button Image
- "OVER": "d:/ymir work/ui/game/taskbar/character_button_02.sub", # Over Button Image
- "DOWN": "d:/ymir work/ui/game/taskbar/character_button_03.sub", # Down Button Image
- "EVENT": lambda: self.interfaceInstance.ToggleCharacterWindow("STATUS"), # Function to call on click
- "TOOLTIP": "Character", # Tooltip Text on hover
- },
- {
- "NORMAL": "d:/ymir work/ui/game/taskbar/inventory_button_01.sub",
- "OVER": "d:/ymir work/ui/game/taskbar/inventory_button_02.sub",
- "DOWN": "d:/ymir work/ui/game/taskbar/inventory_button_03.sub",
- "EVENT": lambda: self.interfaceInstance.ToggleInventoryWindow(),
- "TOOLTIP": "Inventory",
- },
- {
- "NORMAL": "d:/ymir work/ui/game/taskbar/community_button_01.sub",
- "OVER": "d:/ymir work/ui/game/taskbar/community_button_02.sub",
- "DOWN": "d:/ymir work/ui/game/taskbar/community_button_03.sub",
- "EVENT": lambda: self.interfaceInstance.ToggleInventoryWindow(),
- "TOOLTIP": "Community",
- },
- {
- "NORMAL": "d:/ymir work/ui/game/taskbar/system_button_01.sub",
- "OVER": "d:/ymir work/ui/game/taskbar/system_button_02.sub",
- "DOWN": "d:/ymir work/ui/game/taskbar/system_button_03.sub",
- "EVENT": lambda: self.interfaceInstance.ToggleInventoryWindow(),
- "TOOLTIP": "System",
- },
- ]
Kopiere einfach einen Button der bereits existiert und tausche die Bilder, die Funktion und den Tooltip aus. Ich empfehle sehr, die UI die du einfügen möchtest, in der interfacemodule.py zu instanziieren und eine Toggle-Funktion zu schreiben. Achte auf die richtige Einrückung.