我定义了一个函数,它允许我沿对角线移动对象:
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
代码可以工作,但问题是它不能实现我想要的功能。现在,如果我靠近它,物体会加速,这看起来很奇怪。我很清楚它为什么会这样做,但是有没有一种简单的方法可以使速度保持恒定,而不是方向呢?在
如果你这样做,dx和dy是向量的标量,从你的人指向目标。然后除以它们的大小,这里用dz表示。现在dx和dy表示单位向量。一旦你把它们乘以速度,你就会让你的物体以恒定的速度移动,但方向不同。在
相关问题 更多 >
编程相关推荐