算法帮助,数学很烂

标签 algorithm

我正在搞一些 Javascript 游戏开发,试图创建一个简单的框架来绘制运动场(用于体育游戏)。

我的数学很烂,真的需要这个算法的帮助。

假设我有这些变量:

GAME_WIDTH = 1024;  
FIELD_LENGTH = 170;  
PLAYER_SPEED = 4.72;  
update_duration = 30;  

大写的前 3 个是可变的,这意味着它们可以由用户设置。最后一个本质上是我的“更新”代码在 1 秒内被调用的频率。

GAME_WIDTH 是像素,FIELD_LENGTH 是米,PLAYER_SPEED 是玩家可以跑完 40 米的秒数。

我想做的是获取这 4 个变量并将其转化为玩家在 1 个“更新”中可以移动的像素数。我从来没有真正做过任何游戏开发,我在学校也从来没有注意过几何或三角学,所以我在这里完全不知所措。
谁能帮忙?

编辑
这是一个 2D 自上而下的游戏,因此该算法仅处理 X(从右到左)坐标。

最佳答案

您需要接受“单位转换”的精美艺术。 http://oakroadsystems.com/math/convert.htm

例如,12 英寸 = 1 英尺。因此,您可以像这样将英寸转换为英尺:

48 英寸 *(1 英尺/12 英寸)= 4 英尺。 “英寸”抵消,只留下英尺。

所以我们想要的答案是每次更新的像素数。 (update_duration 是毫秒吗?假设是这样...)

(40 meters / 4.72 seconds) 
 * (1024 pixels / 170 meters) 
 * (1 second / 1000 ms) 
 * (30 ms / 1 update) = 1.53140578 pixels / update

或者如果 30 是更新/秒,同样的想法:

  (40 meters / 4.72 seconds) 
   * (1024 pixels / 170 meters) 
   * (1 second / 30 updates = 1.70156198 pixels / update

(我可能误解了你的常量的含义......但这就是技术。这个概念是这些分数中的每一个,a/b,都等于“1”。

当你用完整的类分数风格写它时,这看起来更好,所有的取消都变得完美。非常有用的技术。

关于算法帮助,数学很烂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410755/

相关文章:

sql - 比SOUNDEX更好的东西

algorithm - 中位数算法的中位数 : why divide the array into blocks of size 5

javascript - 在 JavaScript 中生成所有可能的可变长度逗号分隔字符串组合

algorithm - 银行柜员再分级模拟

algorithm - 为什么不对所有内容都使用哈希/哈希表?

javascript - 如何确定宽高比是否 > 1 :5?

algorithm - 使用 System.Random 时的时间相关性(使用 System.Random.TF 时不存在)

algorithm - 仅使用三个乘法的复数乘积

algorithm - 检测图中是否存在负循环的最快算法

Python:解决 Python 在线编译器中的内存约束 p‌r‌o‌b‌l‌e‌m?