【问题标题】:How to move a object in straight line in pygame? [duplicate]如何在pygame中直线移动对象? [复制]
【发布时间】:2021-06-04 12:17:21
【问题描述】:

首先,我计算了欧几里得距离,然后我尝试使用循环迭代以使用斜率到达某个点,但移动路径不像直线。请帮我解决问题。

def move(roborect,grad):
   power=(x_cord[0]-roborect.x)**2+(y_cord[0]-roborect.y)**2
     distance=math.sqrt(power)
     if(distance>15):
        roborect.y=int(grad*roborect.x)+roborect.y
        roborect.x=roborect.x+5
        print(distance)
   

【问题讨论】:

    标签: python python-3.x pygame


    【解决方案1】:

    计算从对象到目标的方向向量。归一化方向向量 (Unit vector)。将向量缩放到一定长度,并将向量添加到位置:

    dx = x_cord[0]-roborect.x
    dy = y_cord[0]-roborect.y
    distance = math.sqrt(dx*dy + dy*dy)
    if distance > 15:
        vx = dx * 5 / distance 
        vy = dy * 5 / distance 
        roborect.x += vx
        roborect.x += vy
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 2016-03-16
      • 2021-12-02
      相关资源
      最近更新 更多