プログラムを部分的にしか見てないので全容はわかりませんが、どうも出現とメインループの切り分けがうまくいってないような気がしますね…。 早さを固定する場合は移動にかかる時間を計算しないといけないです。 例えばSX,SYがスタート地点でEX,EYが目的地だとすると、 L=SQR(POW(EX-SX,2) + POW(EY-SY,2)) でLに距離が求まります。この距離に対して速度をかけて、その値を-で設定する時間の方に当てはめる感じです。