Я определил функцию, которая позволяет мне перемещать объект по диагонали:
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
Код работает, но проблема в том, что он не делает то, что я хочу. Сейчас объект ускоряется, если я подхожу к нему ближе, что выглядит довольно странно. Я прекрасно понимаю, почему он это делает, но есть ли простой способ установить постоянную скорость, но не направление?