微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Python Kivy 将垂直矩形旋转为水平矩形 - 如何?

如何解决使用 Python Kivy 将垂直矩形旋转为水平矩形 - 如何?

我正在尝试用 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)。如果 rotateFalse,则绘制原始 Rectangle,但如果 rotateTrue,则绘制旋转的 Rectangle。使用 python 代码可以获得类似的结果,但是您必须编写更多代码(绑定)来处理用户更改 PongGame 大小的情况。在 kv 中完成这一切让 kivy 处理这些绑定。

一旦你有了这个代码,你就可以使用以下方法旋转 PongGame

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

在您的 PongApp 中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。