gpt4 book ai didi

java - 查找二维网格中物体距离的百分比

转载 作者:行者123 更新时间:2023-12-02 11:25:52 25 4
gpt4 key购买 nike

annotated graph image对于我的计算机科学项目,我正在制作一个迷宫游戏。我已经编写了一个随机 prims 算法来随机制作迷宫,并且效果很好。我添加了一个我想称为 radio 的对象(如上面链接的图像中的黄色方 block 所示),它可以从中播放音乐。如果播放器(图中显示为红色)位于 [0, 0](左上)并且 radio 位于 [7, 4](右下),我希望音量非常安静。如果播放器和 radio 并排放置,我希望音量最大。我希望以 double 形式存储的音量(范围为 0.0(无音频)和 1.0(全音量)。我该如何执行此操作?

最佳答案

如果您只想获取玩家和 radio 之间的直接距离,而不是他们在迷宫中行走的距离,那么您可以将用户当前距离作为最大距离的百分比。

最大距离为 [0, 0] 到 [n-1, m-1],其中 n 和 m 是网格的高度和宽度。在您的示例中, radio 在水平方向上距离 7 个单位,在垂直方向上距离 4 个单位。应用毕达哥拉斯定理得到的最大距离约为 8.06 个单位。

与 radio 相比,当前距离就是用户所在的位置。如果用户位于 [3, 2],则他们水平距离为 4 个单位,垂直距离为 2 个单位。再次应用毕达哥拉斯定理,用户距离约为 4.46 个单位。

以百分比计算,用户与 radio 的最大距离约为 55%。然后您可以将音量设置为 (100-55)% = 45%。您可能还想将最小音量限制在 20-30%,这样他们即使刚开始也能听到音乐。

附:如果步长太大,您可以添加一个计时器,以较小的步长平滑地过渡音量,而不是突然改变音量。

关于java - 查找二维网格中物体距离的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49639790/

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