オブジェクトを斜めに移動できる関数を定義しました。
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
コードは機能しますが、問題は、私が望むことをしないことです。現在、オブジェクトに近づくと速度が上がりますが、これはかなり奇妙に見えます。なぜこれを行うのかはよく知っていますが、速度を一定に修正する簡単な方法はありますが、方向は修正できませんか?