我可以添加一个新的小部件,但它没有正确连接。画布看起来像是在错误的坐标系中。
我的.py
class Ship(Widget):
def __init__(self, **kwargs):
super(Ship, self).__init__(**kwargs)
self.vel = 10
class Game(Widget):
def __init__(self, **kwargs):
super(Game, self).__init__(**kwargs)
self.ship = Ship()
self.add_widget(self.ship)
self.ship.center = self.center
我的.kv
<Ship>
size: 50, 50
canvas:
Color:
rgb: 0, 0, 1
Rectangle:
size: self.size
pos: self.pos
<Game>
canvas.before:
Color:
rgb: 0, 0, 0
Rectangle:
size: self.size
pos: self.pos
这会创建图像:
我希望蓝盒子成为死亡中心。
答案 0 :(得分:1)
在指定中心位置时,尚未计算布局。默认情况下,每个小部件的起始大小为100,100,并且您的Ship
正好位于该100,100区域的中心。如果您希望Ship
保持居中,则需要绑定属性:
class Game(Widget):
def __init__(self, **kwargs):
super(Game, self).__init__(**kwargs)
self.ship = Ship()
self.add_widget(self.ship)
self.bind(center=self.ship.setter('center'))