【发布时间】:2017-01-24 08:41:39
【问题描述】:
我目前正在开发一款突破性游戏,但遇到了一道数学题。这是场景。
球有一个水平速度,名为 bxspd。 球有一个名为 bx 的 X 坐标。 球有一个最大速度,命名为 bspd。 蝙蝠有 x 坐标,命名为 px。
当球与球棒碰撞时,它需要在相对于球棒位置的水平方向上反弹。换句话说:
//碰撞事件 bxspd = bx - px。
这样,当球击中球棒的左侧时,球会弹回左侧。距离球棒中心越远,水平速度越快向左。
问题是我的球棒从中心到每边的宽度为 50。如何将其缩放到球的最大速度?所以换句话说,如果它击中球棒的最左角,bxspd 会变为 -2 而不是 -50?
问候, 克拉丽斯
【问题讨论】:
-
在写下这个问题时,我设法弄明白了。 px原点是蝙蝠的左边,所以我设计了以下公式:bdx = ((bx - (px + (pwidth / 2))) / (pwidth / 2)) * bspd;
-
然后随意删除问题
-
感谢 mplungjan 的建议。我认为将公式编写为问题的答案会更有利可图,以便人们在遇到相同问题时可以将其用作参考。
-
当然可以。它似乎非常适合您的问题...
标签: javascript math physics