标签颜色改变其他标签

2 投票
1 回答
1570 浏览
提问于 2025-04-18 05:37

我把乒乓游戏中显示分数的小工具的颜色改了,但是一旦我点击开始游戏,球和挡板的颜色也跟着变了。球和挡板一开始是白色的,我希望它们保持白色。

#:kivy 1.8.0


<PongBall>:
    size: 30,30
    canvas:
        Ellipse:
            pos: self.pos
            size: self.size

<PongPaddle>:
    size: 100, 15
    canvas:
        Rectangle:
            pos: self.pos
            size: self.size


<PongGame>:
    ball: pong_ball
    player1: player_bottom
    test_text: test_text

    canvas:
        Color: 
            rgb: (1, 1, 1)
        Rectangle:
            pos: 0, self.height-30
            size: self.width, 30

    Label:
        font_size: 30
        center_x: 30
        top: root.top
        text: str(root.player1.score)
        color: 1,0,0,1

    Label:
        id: test_text
        font_size: 60
        center_x: root.width/2
        top:  root.top-(root.top - (root.top/2))/2
        text: 'Tap to Play!'

    PongBall:
        id: pong_ball
        center: self.parent.center

    PongPaddle:
        id: player_bottom
        x: root.center_x
        center_y: root.y+self.height

1 个回答

2
Label:
    font_size: 30
    center_x: 30
    top: root.top
    text: str(root.player1.score)
    color: 1,0,0,1
<PongBall>:
    size: 50, 50 
    canvas:
        Ellipse:
            pos: self.pos
            size: self.size          

<PongPaddle>:
    size: 25, 200
    canvas:
        Rectangle:
            pos:self.pos
            size:self.size
<PongGame>:
    ball: pong_ball
    player1: player_left
    player2: player_right
    canvas:
        Color:
            rgb: (1, 1, 1)
        Rectangle:
            pos: self.center_x-5, 0
            size: 20, self.height


    PongBall:
        id: pong_ball
        canvas.before:
            Color:
                rgb: (1, 0, 0) #red ball
        center: self.parent.center

    PongPaddle:
        id: player_left
        x: root.x
        canvas.before:
            Color:
                rgb: 1, 1, 0 # yellow paddle
        center_y: root.center_y

    PongPaddle:
        id: player_right
        x: root.width-self.width
        canvas.before:
            Color:
                rgb: 0, 1, 0 #green paddle
        center_y: root.center_y

    Label:
        font_size: 70
        center_x: root.width / 4
        top: root.top - 50
        text: str(root.player1.score)
        color: 0,0,1,1

    Label:
        font_size: 70
        center_x: root.width * 3 / 4
        top: root.top - 50
        text: str(root.player2.score)
        color: 0,0,1,1

把两个标签的代码移动到你的kv文件的底部,这样就可以只改变分数字符串的颜色了。

撰写回答