如果您的奔跑一旦球将要停止,它就会开始略微向上和向下跳跃,并逐渐消失在地板上。
所以我遵循的是乒乓球比赛的基维教程,我一直想着为什么不让球具有重力……我有点明白了,尽管我不知道它是否是好的代码,但是那是不是我的问题。我已经将其与其他基本相同的代码进行了比较,但没有发现任何差异。有人可以告诉我我做错了什么吗? (对不起,我不得不将所有代码粘贴到这里,但是我不知道问题出在哪里...)
#:kivy 1.10.1
<PongBall>:
size: 50, 50
canvas:
Ellipse:
pos: self.pos
size: self.size
<PongGame>:
ball: pong_ball
canvas:
Rectangle:
pos: self.center_x - 5, 0
size: 10, self.height
Label:
font_size: 70
center_x: root.width / 4
top: root.height * 9 / 10
text: "0"
Label:
font_size: 70
center_x: root.width * 3 / 4
top: root.height * 9 / 10
text: str(pong_ball.velocity[1])
PongBall:
id: pong_ball
center: self.parent.center
这是我的kv文件:
conditional aggregation
我希望球放慢速度,直到它躺在地面上并且不移动为止。
答案 0 :(得分:0)
这只是浮点数的常见问题...
只需在您的更新速度功能中执行类似的操作
if velocity <= 1e-6: # some really small number
velocity = 0.0
在移动功能中固定y位置也是个好主意
if (self.ball.y < 0) or (self.ball.top > self.height):
self.ball.y = 0.1
self.ball.velocity_y *= -1