javascript - 简单的弹跳球不会停止弹跳

标签 javascript html physics

这是我在多种语言中遇到的普遍问题。当我第一次学习这门语言时,我尝试做的第一件事就是制作一个弹跳球。

但是,每次我这样做时,都会遇到一个非常烦人的问题 - 球只是在底部不断弹跳一点。

这是我今天在学习 Html5 Canvas 时遇到的问题的示例 - http://pastebin.com/aM1svKMJ

您可以将其复制并粘贴到 HTML 文件中,然后根据需要自行运行。尽管我将其设置为每次反弹后损失 20% 的“能量”,但它仍会在底部继续反弹一点。

如果有人能指出我的错误,我将不胜感激

最佳答案

您可以使用球的原始 y 坐标,并使用其与当前 y 坐标的比率来减少“e”除以灵敏度常数。 对我有用:

//line 46 add:
var initHeight = height / 2;

//line 83:
this.vy *= -1 * e;
e = e - (e* (initHeight / this.y ) / 10);

这是一个工作示例:http://jsfiddle.net/57tx3/

关于javascript - 简单的弹跳球不会停止弹跳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750398/

相关文章:

java - 碰撞检测和弹跳

javascript - 网络分析信标

html - 网格元素宽如太平洋

javascript - 有没有办法用 Canvas 实现类似 Photoshop 的乘法、差值等图层效果?

javascript - 根据 URL 更改更改 DOM 元素类名称

javascript - 为什么 MatterJS 物理坐标与 DOM 元素有偏移?

时间校正 Verlet 积分和太大的时间步长

java - gwt-openlayers - 显示路线

javascript - 使用 UnderscoreJS 从数组中删除一个项目

javascript - 通过 emberJS 中的 Controller 修改组件的属性