我正在制作横向卷轴射击游戏。我目前让我的角色水平向右射击。我想让他在屏幕上的任何地方拍摄。
我知道我应该使用 atan2 来确定我的子弹将射向哪个角度,但我很困惑如何在我的游戏中实现它。
我的问题是如何将屏幕上的触摸坐标调用为 atan2?我是否将它放在我的触摸命令代码或我的射弹的类中。最后我需要再做一个 atan2 来提高速度吗?
首先你需要你的播放器的向量
P = (a, b)
以及你的射击点的位置
T = (x, y)
这给了我们一个从 P 到 T 的向量 (x - a, y - b)。通过采取
角度 = atan2 (yb, xa)
从那里开始,这取决于您如何实施拍摄。
重申一下, atan2 所做的只是找到角度,所以
我需要再做一个 atan2 来提高速度吗
取决于您是否想让弹丸根据角度以不同的速度移动。事实上,如果你旋转你的弹丸,你只需要角度,否则你可以沿着向量移动它(如果它是一个圆,不管它面向什么方向!)
您不需要任何三角函数,也不应该使用它,因为它速度慢、不准确并且充满符号 (+/-) 情况会出错。
你可能可以用线性代数做你需要的一切。使用向量,而不是角度。