gpt4 book ai didi

c++ - 将鼠标位置转换为方向和后退

转载 作者:太空宇宙 更新时间:2023-11-04 14:22:19 27 4
gpt4 key购买 nike

我想问一下,将鼠标 X、Y 位置从玩家位置转换为 16 个方向之一的最佳公式是什么。

我在 c++ 中工作,sfml 1.6 所以我很容易得到每个位置,但我不知道如何根据玩家位置的角度或其他东西来转换它们。 (我的数学一向不太好,而且超过 4 个方向 if 语句看起来太复杂了)。

我还想将它发送到服务器,服务器将方向转换回 delta X,Y,这样他就可以做类似的事情:

player.Move(deltaX * speed * GetElapsedTime(), ...Y);

最佳答案

“最简单”的方法是将您的两组坐标(一组用于当前玩家位置,一组用于当前鼠标位置)转换为相对于玩家位置的角度,其中 0 的角度是直线领先于玩家(或北方,取决于您的游戏运作方式)。然后,您的 16 个方向中的每一个都会转换为给定的 22.5 度间隔。

但是,既然你说你数学不好,我想你正在寻找比这更具体的东西。

关于c++ - 将鼠标位置转换为方向和后退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6572940/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com