问题描述
在应用程序的第一个活动中,孩子必须戳破指定字母的气泡,例如戳破所有包含字母“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
解决方法
您可以通过将气泡的不透明度设置为零或将它们定位在屏幕外来隐藏气泡。
从 C
到 Z
的所有气泡都在同一位置,因此您只能看到最后一个绘制的气泡,即 Z
。