def build(self): root = GameRoot() layout = KivyFloatLayout( # background_color=(.1, .2, .1, 1), size=Window.size) Window.bind(size=layout.setter('size')) label = KivyLabel(text='Hello world!', # background_color=(.3, .2, .1, 1), # angle=30, ) label.bind(texture_size=label.setter('size')) layout.add_widget(label) root.add_widget(layout) return root
class CivMapScreen(BoxLayout): def __init__(self, **kwargs): super(CivMapScreen, self).__init__(**kwargs) self.pos = (0, 0) self.nations = [] self.ms = MapScatter(pos_hint={'x': 0, 'y': 0}) self.add_widget(self.ms) self.im = Image(source='civ_board.png', allow_stretch=True, keep_ratio=False, opacity=1.0) self.ms.add_widget(self.im) self.fl = FloatLayout(size=self.im.size, pos_hint={'x': 0, 'y': 0}) self.ms.bind(size=self.fl.setter('size')) self.im.add_widget(self.fl) self.bind(size=self.im.setter('size')) self.sm = ScreenManager(pos_hint={ 'x': 1660 / 4058.0, 'y': 3 / 2910.0 }, size_hint=((3367 - 1660) / 4058.0, (2907 - 2105) / 2910.0)) self.fl.add_widget(self.sm) self.st = StockPanel(pos_hint={'x': 0, 'y': 0}, size_hint=(1, 1)) self.st.ccc_btn.bind(on_press=self.change_screen) self.sm.bind(size=self.st.lab.setter('size')) screen = Screen(name="Stock and Treasury", pos_hint={ 'x': 0, 'y': 0 }, size_hint=(1, 1)) screen.add_widget(self.st) self.sm.add_widget(screen) self.ccc = CivCardCreditsPanel(pos_hint={ 'x': 0, 'y': 0 }, size_hint=(1, 1)) self.ccc.st_btn.bind(on_press=self.change_screen) screen = Screen(name='Civ Card Credits', pos_hint={ 'x': 0, 'y': 0 }, size_hint=(1, 1)) screen.add_widget(self.ccc) self.sm.add_widget(screen) def change_screen(self, instance, *args): if instance == self.st.ccc_btn: self.sm.current = 'Civ Card Credits' elif instance == self.ccc.st_btn: self.sm.current = 'Stock and Treasury' for obj in [self, self.sm, self.st, self.st.lab]: print(obj, obj.pos, obj.pos_hint, obj.size, obj.size_hint) def add_spotter(self, spotter): print(f'Adding {spotter} to {self.fl}') self.fl.add_widget(spotter)