我已经定义了一个函数,它允许我沿对角线移动对象:
if(myX > targetX):
dx = myX - targetX
else:
dx = targetX - myX
if(myY > targetY):
dy = myY - targetY
else:
dy = targetY - myY
if(dy == 0):
dy = 1
if(dx == 0):
dx = 1
#Calc Movement
if(dx < dy):
Speedy = dy/dx
Speedx = 1
if(dx > dy):
Speedy = 1
Speedx = dx/dy
elif(dx == dy):
Speedx = 1
Speedy = 1
if(myX < targetX):
Speedx = Speedx * -1
if(myY < targetY):
Speedy = Speedy * -1
return Speedx,Speedy
该代码有效,但问题是它没有做我想要的。现在,如果我靠近它,物体就会加速,这看起来很奇怪。我很清楚为什么会这样,但是有没有一种简单的方法可以将速度固定为恒定,而不是方向?