我正在尝试显示玩家在Kivy游戏中留下的尝试次数。然而,虽然玩家实际上可以用尽游戏中的尝试,但是在UI中没有更新剩余的尝试。我怀疑这是因为Label只显示一次,需要在之后更新,或者它可能与Kivy ID有关。
这里是代码的简化版本
在main.py上我们有:
class TreasureHuntGrid(GridLayout):
attempts = 8
board = [[0,0][0,0]]
def __init__(self, *args, **kwargs):
super(TreasureHuntGrid, self).__init__(*args, **kwargs)
def lowerattempts(self, button):
if condition:
self.attempts = self.attempts - 1
在我们的.kv文件中:
AnchorLayout:
anchor_y: 'bottom'
anchor_x: 'left'
TreasureHuntGrid:
id: board
size: min(self.parent.size), min(self.parent.size)
size_hint: None, None
Label:
size_hint: (1.75, 1)
height: sp(40)
text:'You have {} attempts left'.format(board.attempts)
答案 0 :(得分:1)
让你的尝试变量为kivy属性,然后kv语言将在更改时自动绑定到更新:
from kivy.properties import NumericProperty
class TreasureHuntGrid(GridLayout):
attempts = NumericProperty(0)
...