【发布时间】:2021-01-29 03:13:30
【问题描述】:
我正在制作一款游戏,您可以在其中以稳定的速度(例如每秒 50 美元)赚钱。但是,当增加“钱”时,我希望它能够平稳地增加,而不是每秒跳 50 美元。
setInterval(increasemoney,1000);
function increasemoney() {
money = money + moneypersecond;
}
我目前的策略是将其分为两类;一种是您每 1/moneypersecond 秒赚 1 美元(其中 moneypersecond
但是,有两个问题; 因为我想避免浮动,y 必须四舍五入,但这会失去精度。 编辑:浮动很好!我还可以通过增加“更新”之间的时间来提高精度(这也会使其看起来不那么平滑,并且只会提高精度而不是消除不精确)。
我的问题:
- 这是正确的轨道吗?
- 我应该如何实施解决方案? (最好以消除不精确的方式)
要求:我要避免浮动编辑:浮动是可以的,越准确越好。
【问题讨论】:
-
为什么不使用带小数的数字,在向用户显示时只显示整数?似乎没有精度就不可能有精度。
-
你想要
lerp的值,详见Linear Interpolation。另请参阅slerp、Spherical Linear Interpolation。 -
setInterval 不会正好是一秒,具体取决于计算机/浏览器的工作负载。
标签: javascript