Kivy尺寸变化定位

2024-10-02 14:16:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想我还是不知道基维的位置。我有一个尺寸为(100,10)的吧台(hungerBar),我想把它放在窗户中间。该条将每秒更改其大小(-5,0)。然而,以我现在设置的方式,它的位置也随着大小的变化而变化。下面是部分代码。你知道吗

class HungerBar(Widget):
    def hunger_dec(self):
        if (self.size[0] > 0):
            self.size[0] = self.size[0] - 5
    def hunger_inc(self, increase):
        if (self.size[0] + increase < 100):
            self.size[0] = increase + self.size[0]

class ShootingGame(Widget):
    hungerBar = HungerBar()

    def __init__(self, **kwargs):
        super(ShootingGame, self).__init__(**kwargs)
        randX = random.choice([0.1, 0.2, 0.8, 0.9])
        self.enemy = self.drawEnemy(randX)
        Clock.schedule_interval(self.enemy.drawWalking, 1)

        self.hungerBar = self.drawBar()
        Clock.schedule_interval(self.hungerBar.hunger_dec, 1)


    def drawBar(self):
        bar = HungerBar()
        self.add_widget(self.hungerBar)
        return bar

class GameScreen(Screen):
    def __init__(self, **kwargs):
        super(GameScreen, self).__init__(**kwargs)
        self.game = ShootingGame()
        self.add_widget(self.game)
        Clock.schedule_interval(self.game.update, 1.0 / 60.0)

sm = ScreenManager()
game_screen = GameScreen(name='game')
sm.add_widget(game_screen)

class ShootingApp(App):
    def build(self):
        return sm

if __name__ == '__main__':  
    ShootingApp().run()

kv文件:

<HungerBar>:
    Color: 
        rgb: (0, 1, 1)
    canvas:
        Rectangle:
            pos: root.width/2, 30
            size: 100, 10

谢谢你!你知道吗


Tags: selfgamesizeifinitdefkwargsclass

热门问题