我正在创建塔防游戏,我创建了一个程序,该程序从炮塔开始创建弹丸,并在敌人进入射击范围后立即将其发送给敌人。弹丸向敌人的方向移动,但在某些方向上弹丸或多或少地是快速的。这是代码:
//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);