gpt4 book ai didi

java - 在自顶向下游戏中使用三角函数时遇到问题

转载 作者:行者123 更新时间:2023-12-01 05:33:15 25 4
gpt4 key购买 nike

这是一个很小的问题,但却让我很烦恼。

基本上,为了提供一些背景,我制作了一个小型自上而下的射击游戏,玩家向鼠标旋转。当他们射击时,子弹会沿着射击的角度前进,但它不是源自玩家的坐标,而是来自枪。

这运行良好,但唯一的问题是,光标设置为在鼠标坐标所在的位置绘制。由于这样的偏移,子弹会在光标“下方”行进,而不是直接穿过光标: enter image description here

我希望它看起来像这样:-> enter image description here

我花了大约 2 个小时试图找到解决方案,但到目前为止我想到的最好的是

Player p = Client.pList.getPlayerByName(Client.username);
int cursX = (int) (p.getX() + Math.cos(mouseAngle) * Math.abs(mousePos[0] - p.getX()));
int cursY = (int) (p.getY() + Math.sin(mouseAngle) * Math.abs(mousePos[1] - p.getY()));
g.drawLine(cursX - 4, cursY, cursX + 4, cursY);
g.drawLine(cursX, cursY - 4, cursX, cursY + 4);

如果有任何帮助,我将不胜感激

最佳答案

由于您正在控制光标绘制,因此您可以简单地将光标绘制为原始鼠标位置(而不是您似乎使用的玩家目标)加上枪与玩家中心的偏移量 - 然后它会出现在子弹线上。除了用于确定发射的子弹的初始位置的相同计算之外,这不需要三角函数。

另一种方法是将火力瞄准鼠标的实际位置。这比较复杂,但如果您有兴趣,我会解决它。

关于java - 在自顶向下游戏中使用三角函数时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8628389/

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