2021年2月10日星期三

I need to hide declared objects in .kv file

I am developing an application to help children with functional diversity learn to read and write.

In the first activity of the app, children have to pop the bubbles of the letter indicated, for example, pop all the bubbles containing the letter "A". I have two problems, the first one is that I am not able to hide the bubbles that I have declared in the .kv, as you can see in the image, the bubble "Z" appears immobile in the lower left corner and I think that bubble appears because it is the last one that I have declared in the .kv.

The other problem is that I am not able to have more than one bubble with the same letter.

file.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,0).rotate(randint(0,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()  

file.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

https://stackoverflow.com/questions/66145800/i-need-to-hide-declared-objects-in-kv-file February 11, 2021 at 06:06AM

没有评论:

发表评论