如何使用Python Kivy将垂直矩形转换为水平矩形?
嘿,作为Kivy新手碰到这种看似简单但卡壳的问题太正常啦,我来帮你搞定~
你现在的代码画出来是垂直中线,核心原因是你设置的Rectangle尺寸和位置是垂直方向的:size:10, self.height意味着这个矩形宽10像素、高占满整个屏幕高度,再加上pos:self.center_x -5,0让它从屏幕底部开始,对齐水平中心,所以就成了垂直中线。
要改成水平中线,直接调整pos和size参数就好,完全不需要旋转,这是最直接高效的方式:
<PongGame>: canvas: Rectangle: pos: 0, self.center_y - 5 # 从屏幕左边缘开始,垂直方向居中(减去5是因为矩形高10) size: self.width, 10 # 宽度占满整个屏幕,高度10像素
要是你好奇怎么用旋转实现(虽然这里没必要),也可以用Kivy的Rotate指令配合PushMatrix/PopMatrix来保证不影响其他绘制内容:
<PongGame>: canvas: PushMatrix # 保存当前矩阵状态 Rotate: angle: 90 # 旋转90度 origin: self.center # 以屏幕中心为旋转原点 Rectangle: pos: self.center_x - 5, 0 size: 10, self.height PopMatrix # 恢复矩阵状态,避免影响后续绘制
不过还是更推荐第一种方法,毕竟旋转对于这个需求来说有点画蛇添足,直接调整位置和尺寸更直观~
内容的提问来源于stack exchange,提问作者PyBeginner
相关产品推荐
相关产品推荐

