为了账号安全,请及时绑定邮箱和手机立即绑定

我给小球加了碰撞检测之后,发现小球在一个高度上无限的弹跳。用alert 发现小球的vy 一直停在-3.3333循环小数上!我加了个判断if(ball.vy >= -3.4){ball.vy=0;},不过很突兀。有没有其他的好方案?

正在回答

1 回答

其实这个碰撞检测的物理模拟不严格。问题的关键在于1)updateBalls中balls[i].更新,在距离地面非常近的时候,一帧的时间速度变化没有balls[i].g这么大;2)在碰撞计算y方向速度取反时,vy有可能是负值。如果有兴趣可以自己尝试做更加精准的物理模拟,或者修改参数值达到更好的效果。更加精确的各类物理模拟我也在计划推出专门课程讲解,欢迎关注:)

2 回复 有任何疑惑可以回复我~
#1

有预谋的偶遇 提问者

以前以为物理引擎很难,看了这个教程之后,很惊讶!三行代码就解决核心部分!虽然有bug(笑),之前在网上见过一个粒子的物理模拟的js库,有两个Demo 一个永不消停的蜘蛛、一个可以撕烂的布,源代码看不懂所以很期待这门课程:)
2014-07-21 回复 有任何疑惑可以回复我~

我也有这个问题

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信