我需要在 .kv 文件中隐藏声明的对象

问题描述

我正在开发一个应用程序来帮助功能多样的儿童学习阅读和写作。

在应用程序的第一个活动中,孩子必须戳破指定字母的气泡,例如戳破所有包含字母“A”的泡泡。我有两个问题,第一个是我无法隐藏我在 .kv 中声明的气泡,正如您在图像中看到的,气泡“Z”出现在左下角不动,我认为出现那个气泡是因为它是我在 .kv 中声明的最后一个

一个问题是我不能用同一个字母有多个气泡。

文件.py

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.uix.image import Image
from kivy.properties import NumericProperty,ReferenceListProperty,ObjectProperty
from kivy.graphics import Ellipse
from kivy.vector import Vector
from kivy.clock import Clock
from random import randint
from kivy.uix.screenmanager import ScreenManager,Screen

Builder.load_file('bubble.kv')

class BubblePop(Widget):
    veLocity_x = NumericProperty(0)
    veLocity_y = NumericProperty(0)
    veLocity = ReferenceListProperty(veLocity_x,veLocity_y)
    
    def move(self):
        self.pos = Vector(*self.veLocity) + self.pos
        
class BubbleGame(Widget):
    bubbleA = ObjectProperty(None)
    bubbleB = ObjectProperty(None)
        
    def serve_bubble(self):
        self.bubbleA.center = self.center
        self.bubbleA.veLocity = Vector(1,0).rotate(randint(0,360))
        self.bubbleB.center = self.center
        self.bubbleB.veLocity = Vector(1,360))
        
        
    def update(self,dt):
        self.bubbleA.move()
        if (self.bubbleA.y < 0) or (self.bubbleA.top > self.height):
            self.bubbleA.veLocity_y *= -1
               
        if (self.bubbleA.x < 0) or (self.bubbleA.right > self.width):
            self.bubbleA.veLocity_x *= -1
            
        self.bubbleB.move()
        if (self.bubbleB.y < 0) or (self.bubbleB.top > self.height):
            self.bubbleB.veLocity_y *= -1
            
        if (self.bubbleB.x < 0) or (self.bubbleB.right > self.width):
            self.bubbleB.veLocity_x *= -1   
            
class BubbleApp(App):
    def build(self):
        game = BubbleGame()
        game.serve_bubble()
        Clock.schedule_interval(game.update,1.0/60.0)
        
        return game
    
if __name__ == '__main__':
    BubbleApp().run()

文件.kv

#:kivy 1.9.0

<BubblePop>:
    size: 100,100

<BubbleGame>:
    canvas.before:
        Rectangle:
            pos: self.pos
            size: self.size
            source: 'data/img/fondobosque.jpg'
    bubbleA: bubble_A
    bubbleB: bubble_B
    bubbleC: bubble_C
    bubbleD: bubble_D
    bubbleE: bubble_E
    bubbleF: bubble_F   
    bubbleG: bubble_G
    bubbleH: bubble_H
    bubbleI: bubble_I
    bubbleJ: bubble_J   
    bubbleK: bubble_K
    bubbleL: bubble_L
    bubbleM: bubble_M
    bubbleN: bubble_N
    bubbleNN: bubble_NN
    bubbleO: bubble_O
    bubbleP: bubble_P
    bubbleQ: bubble_Q   
    bubbleR: bubble_R
    bubbleS: bubble_S   
    bubbleT: bubble_T
    bubbleu: bubble_U
    bubbleV: bubble_V
    bubbleW: bubble_W
    bubbleX: bubble_X
    bubbleY: bubble_Y
    bubbleZ: bubble_Z
        
    FloatLayout:        
        BubblePop:
            id: bubble_A
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_a/a.png'
                    pos: self.pos
                    size: self.size
        
        BubblePop:
            id: bubble_B
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_b/b.png'
                    pos: self.pos
                    size: self.size
            
        BubblePop:
            id: bubble_C
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_c/c.png'
                    pos: self.pos
                    size: self.size
    
        BubblePop:
            id: bubble_D
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_d/d.png'
                    pos: self.pos
                    size: self.size
            
        BubblePop:
            id: bubble_E
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_e/e.png'
                    pos: self.pos
                    size: self.size
                    
        BubblePop:
            id: bubble_F
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_f/f.png'
                    pos: self.pos
                    size: self.size
            
        BubblePop:
            id: bubble_G
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_g/g.png'
                    pos: self.pos
                    size: self.size
    
        BubblePop:
            id: bubble_H
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_h/h.png'
                    pos: self.pos
                    size: self.size
            
        BubblePop:
            id: bubble_I
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_i/i.png'
                    pos: self.pos
                    size: self.size
    
        BubblePop:
            id: bubble_J
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_j/j.png'
                    pos: self.pos
                    size: self.size
            
        BubblePop:
            id: bubble_K
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_k/k.png'
                    pos: self.pos
                    size: self.size

        BubblePop:
            id: bubble_L
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_l/l.png'
                    pos: self.pos
                    size: self.size
                
        BubblePop:
            id: bubble_M
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_m/m.png'
                    pos: self.pos
                    size: self.size
    
        BubblePop:
            id: bubble_N
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_n/n.png'
                    pos: self.pos
                    size: self.size
            
        BubblePop:
            id: bubble_NN
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_ñ/ñ.png'
                    pos: self.pos
                    size: self.size
    
        BubblePop:
            id: bubble_O
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_o/o.png'
                    pos: self.pos
                    size: self.size
                
        BubblePop:
            id: bubble_P
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_p/p.png'
                    pos: self.pos
                    size: self.size
    
        BubblePop:
            id: bubble_Q
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_q/q.png'
                    pos: self.pos
                    size: self.size
                
        BubblePop:
            id: bubble_R
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_r/r.png'
                    pos: self.pos
                    size: self.size
    
        BubblePop:
            id: bubble_S
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_s/s.png'
                    pos: self.pos
                    size: self.size
            
        BubblePop:
            id: bubble_T
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_t/t.png'
                    pos: self.pos
                    size: self.size
        
        BubblePop:
            id: bubble_U
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_u/u.png'
                    pos: self.pos
                    size: self.size
                
        BubblePop:
            id: bubble_V
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_v/v.png'
                    pos: self.pos
                    size: self.size
        
        BubblePop:
            id: bubble_W
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_w/w.png'
                    pos: self.pos
                    size: self.size
                
        BubblePop:
            id: bubble_X
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_x/x.png'
                    pos: self.pos
                    size: self.size
            
        BubblePop:
            id: bubble_Y
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_y/y.png'
                    pos: self.pos
                    size: self.size
    
        BubblePop:
            id: bubble_Z
            center: self.parent.center
            canvas:
                Ellipse:
                    source: 'data/img/letra_z/z.png'
                    pos: self.pos
                    size: self.size

The "Z" bubble is always stationary in that corner

解决方法

您可以通过将气泡的不透明度设置为零或将它们定位在屏幕外来隐藏气泡。

CZ 的所有气泡都在同一位置,因此您只能看到最后一个绘制的气泡,即 Z

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...