mit kivy will ich zur Übung ein kleines Spiel für zwei Spieler im SplitScreen machen. Jeder Spieler kann in seinem Bereich zwischen verschiedenen Screens wechseln. Da beiden Spielern prinzipiell dieselben Screens zur Verfügung stehen und sich nur die angezeigten Daten unterscheiden, habe ich das in der kv-Datei wie nachfolgend definiert. Unterhalb folgen dann die einzelnen Screens jeweils nur einmal.
Auszug aus meiner kv-Datei:
Code: Alles auswählen
<ScreenGameDouble>:
name: 'screen_game_double'
BoxLayout:
orientation: 'horizontal'
cols: 2
ScreenManagerLeft:
id: 'screen_mgr_left'
transition: FadeTransition()
ScreenPlayerReady:
ScreenStartLight:
ScreenCockpit:
ScreenRefuel:
ScreenManagerRight:
id: 'screen_mgr_right'
transition: FadeTransition()
ScreenPlayerReady:
ScreenStartLight:
ScreenCockpit:
ScreenRefuel:
Nun habe ich in den Screens verschiedene Widgets mit id's bezeichnet. Wie kann ich nun aber auf die jeweiligen Instanzen der ScreenManager zugreifen, um z.B. mit einem Label mit id 'speed' in ScreenCockpit des linken ScreenManagers einen anderen Wert anzuzeigen als mit dem Label derselben id im rechten ScreenManager? Das hier funktioniert jedenfalls nicht:
Code: Alles auswählen
self.ids['screen_mgr_left'].get_screen('screen_cockpit').ids.label_speed.text = str(100)
Code: Alles auswählen
self.scrmgrmain.get_screen('screen_cockpit').ids.label_speed.text = str(100)
Ich danke vielmals für Tipps und wünsche noch ein schönes restliches Wochenende!
Emanuel