我正在创建一个小型自上而下的2D程序,当按下鼠标时会产生一个抛射物。然后射弹向目标移动。 我的问题是,当它靠近目标时,射弹会减速。它应该保持相同的速度。我研究了规范化思维,这会有所帮助,但很难在SFML规范化上找到很多东西。我所发现的并没有帮助。
这是我的射弹(代理人)的更新:
void agent::update(const sf::CircleShape* goal, sf::Time delta) {
direction = goal->getPosition() - body.getPosition();
sf::Vector2f newPos = body.getPosition() + sf::Vector2f(direction.x * speed * delta.asSeconds(), direction.y * speed * delta.asSeconds());
body.setPosition(newPos);
}
PS。我把它放在asSeconds中,而不是asMilliseconds,或者它变得奇怪而且滞后。