SFML - 射弹以不同的方向减速

SFML - Projectile slow down with different direction

我正在创建一个塔防游戏,我创建了一个程序,该程序从炮塔开始创建射弹,并在敌人进入其射击范围内时将其发射到敌人身上。射弹朝敌人的方向移动,但在某些方向上射弹或多或少会很快。 这是代码:

//initialPosition is where the projectile is created. 
sf::Vector2f direction = enemyPosition - initialPosition;
projectile.move(direction.x * speed, direction.y * speed);

我做错了什么?

我找到了解决方案,这是代码:

direction = enemyPosition - initialPosition;
ndir = direction / sqrt(pow(direction.x, 2) + pow(direction.y, 2));
velocity = ndir * speed;
pform.move(velocity);