问题描述
我正在尝试用 Python Kivy 编写一个游戏,只卡在一件事上,这将是一个简单的问题,但我还没有在任何地方找到解决方案。
我希望屏幕中间的线(见附图)是水平的而不是垂直的,意思是从左到右。有什么方法可以旋转这个吗?或者我必须在脚本中更改什么?
Change vertical line to horizontal
这是我创建图形的脚本:
<PongGame>:
canvas:
Rectangle:
pos: self.center_x - 5,0
size: 10,self.height
我将不胜感激。请记住,我仍然是一个初学者。
最好的问候,
PyBeginner
解决方法
这样做的一个好方法是使用 kv
,如下所示:
<PongGame>:
rotate: False # property to control rotation
canvas:
Rectangle:
pos: (0,self.center_y - 5) if self.rotate else (self.center_x - 5,0)
size: (self.width,10) if self.rotate else (10,self.height)
此代码定义了控制旋转的 rotate
属性 (PongGame
)。如果 rotate
为 False
,则绘制原始 Rectangle
,但如果 rotate
为 True
,则绘制旋转的 Rectangle
。使用 python 代码可以获得类似的结果,但是您必须编写更多代码(绑定)来处理用户更改 PongGame
大小的情况。在 kv
中完成这一切让 kivy 处理这些绑定。
一旦你有了这个代码,你就可以使用以下方法旋转 PongGame
:
def rotate(self,dt):
self.root.rotate = not self.root.rotate
在您的 PongApp
中。