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
没有评论:
发表评论