通过on_touch_move方法操作变量

时间:2019-04-21 16:34:46

标签: python kivy

几乎与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 

结果是一个球以恒定的速度运动,不可能实时改变跷跷板的角度。

0 个答案:

没有答案