使用 Python Kivy 将垂直矩形旋转为水平矩形 - 怎么做?

Rotate a vertical rectangle to an horizontal one with Python Kivy - How?

我正在尝试用 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)

此代码定义了 PongGame 的 属性 (rotate) 来控制旋转。如果 rotateFalse,则绘制原始 Rectangle,但如果 rotateTrue,则绘制旋转后的 Rectangle。使用 python 代码可以获得类似的结果,但是您必须编写更多代码(绑定)来处理用户更改 PongGame 大小的情况。在 kv 中完成所有操作让 kivy 处理这些绑定。

一旦您准备好此代码,您就可以使用以下方法旋转 PongGame

def rotate(self, dt):
    self.root.rotate = not self.root.rotate

在你的PongApp.