几乎与Kivy文档中的Pong示例相似,我想对一个带有球的跷跷板进行建模。通过上下移动跷跷板,球左右滚动。我已经知道了球的运动状态。
现在,我想使用on_touch_move
方法来更改移动条件。运动条件中包含角度“ alpha”,该角度应实时更改。
我只是尝试通过on_touch_move
方法来操纵变量,并试图使其可用于移动条件方法。我也想知道为什么__init__
方法会给我带来错误。
我没有显示*.kv
文件,但是在跷跷板课程中,我得到了ID为ball的Ball
from kivy.uix.widget import Widget
from kivy.vector import Vector
class Ball(Widget):
velocity_x = NumericProperty(0)
velocity_y = NumericProperty(0)
def move(self):
alpha = self.y_touch
phi = (2*np.pi/360)*alpha
g = 9.81
x_v = -g * np.sin(phi) * np.cos(phi)
y_v = -g * np.sin(phi)**2
velocity_vec = Vector(float(x_v), float(y_v))
self.pos = velocity_vec + self.pos
def on_touch_move(self, touch):
self.y_touch = touch.y
结果是一个球以恒定的速度运动,不可能实时改变跷跷板的角度。