Python 无法使用kivy从py文件更改小部件的颜色
我正在做一辆车,可以检测到“沙子”,并使用kivy变红。通过在画布上绘制并更新Sand变量来生成沙子。试过之后Python 无法使用kivy从py文件更改小部件的颜色,python,kivy,Python,Kivy,我正在做一辆车,可以检测到“沙子”,并使用kivy变红。通过在画布上绘制并更新Sand变量来生成沙子。试过之后 with self.canvas: Color(1, 0, 0, 1) 及 它不会变红。我认为有一个简单的解决办法,但我不知道遗漏了什么。下面是具体代码 ''' <TriEllf>: canvas: PushMatrix Color: rgba: 99/255,209/255,62/255,1
with self.canvas:
Color(1, 0, 0, 1)
及
它不会变红。我认为有一个简单的解决办法,但我不知道遗漏了什么。下面是具体代码
'''
<TriEllf>:
canvas:
PushMatrix
Color:
rgba: 99/255,209/255,62/255,1
Rotate:
angle: self.angle
origin: self.center
Ellipse:
pos: self.center[0] - 6, self.center[1] + 36
size: 12, 8
angle_start: 270
angle_end: 450
Triangle:
points: self.center[0]-6,self.center[1]+40, self.center[0]+6,self.center[1]+40, self.center[0],self.center[1]+10
PopMatrix
'''
sand = np.zeros((width, height))
class TriEllf(Widget):
angle = NumericProperty(0)
rotation = NumericProperty(0)
sensorf_x = NumericProperty(0)
sensorf_y = NumericProperty(0)
sensorf = ReferenceListProperty(sensorf_x, sensorf_y)
signalf = NumericProperty(0)
def move(self, rotation):
self.pos = Vector(*self.sensorf) + self.pos
self.sensorf = self.center[0], self.center[1] + 27
self.rotation = rotation
self.angle = self.angle + self.rotation
self.sensorf = (Vector(*self.sensorf) - Vector(*self.center)).rotate(self.angle) + self.center
self.signalf = int(np.sum(sand[int(self.sensorf_x) - 6:int(self.sensorf_x) + 6,
int(self.sensorf_y) - 17:int(self.sensorf_y) + 26])) / 516
if self.signalf:
with self.canvas:
Color(1, 0, 0, 1)
“”
:
画布:
推矩阵
颜色:
rgba:99/255209/255,62/255,1
轮换:
角度:self.angle
来源:自我中心
椭圆:
位置:自中心[0]-6,自中心[1]+36
尺码:12、8
起始角度:270
角_端:450
三角形:
点数:自中心[0]-6,自中心[1]+40,自中心[0]+6,自中心[1]+40,自中心[0],自中心[1]+10
流行音乐
'''
砂=np.零((宽度、高度))
类TriEllf(小部件):
角度=数值属性(0)
旋转=数值属性(0)
传感器F_x=数值属性(0)
传感器f_y=数值属性(0)
sensorf=ReferenceListProperty(传感器F_x,传感器F_y)
signalf=NumericProperty(0)
def移动(自、旋转):
self.pos=向量(*self.sensorf)+self.pos
自中心传感器F=自中心[0],自中心[1]+27
自转
自转角=自转角+自转角
self.sensorf=(向量(*self.sensorf)-向量(*self.center))。旋转(自角度)+自中心
self.signalf=int(np.sum)(sand[int(self.sensorf_x)-6:int(self.sensorf_x)+6,
int(self.sensorf_y)-17:int(self.sensorf_y)+26])/516
如果self.signalf:
使用self.canvas:
颜色(1,0,0,1)
'''
<TriEllf>:
canvas:
PushMatrix
Color:
rgba: 99/255,209/255,62/255,1
Rotate:
angle: self.angle
origin: self.center
Ellipse:
pos: self.center[0] - 6, self.center[1] + 36
size: 12, 8
angle_start: 270
angle_end: 450
Triangle:
points: self.center[0]-6,self.center[1]+40, self.center[0]+6,self.center[1]+40, self.center[0],self.center[1]+10
PopMatrix
'''
sand = np.zeros((width, height))
class TriEllf(Widget):
angle = NumericProperty(0)
rotation = NumericProperty(0)
sensorf_x = NumericProperty(0)
sensorf_y = NumericProperty(0)
sensorf = ReferenceListProperty(sensorf_x, sensorf_y)
signalf = NumericProperty(0)
def move(self, rotation):
self.pos = Vector(*self.sensorf) + self.pos
self.sensorf = self.center[0], self.center[1] + 27
self.rotation = rotation
self.angle = self.angle + self.rotation
self.sensorf = (Vector(*self.sensorf) - Vector(*self.center)).rotate(self.angle) + self.center
self.signalf = int(np.sum(sand[int(self.sensorf_x) - 6:int(self.sensorf_x) + 6,
int(self.sensorf_y) - 17:int(self.sensorf_y) + 26])) / 516
if self.signalf:
with self.canvas:
Color(1, 0, 0, 1)