我給小球加了碰撞檢測之后,發(fā)現(xiàn)小球在一個(gè)高度上無限的彈跳。用alert 發(fā)現(xiàn)小球的vy 一直停在-3.3333循環(huán)小數(shù)上!我加了個(gè)判斷if(ball.vy >= -3.4){ball.vy=0;},不過很突兀。有沒有其他的好方案?
1 回答
舉報(bào)
0/150
提交
取消
我給小球加了碰撞檢測之后,發(fā)現(xiàn)小球在一個(gè)高度上無限的彈跳。用alert 發(fā)現(xiàn)小球的vy 一直停在-3.3333循環(huán)小數(shù)上!我加了個(gè)判斷if(ball.vy >= -3.4){ball.vy=0;},不過很突兀。有沒有其他的好方案?
舉報(bào)
2014-07-21
其實(shí)這個(gè)碰撞檢測的物理模擬不嚴(yán)格。問題的關(guān)鍵在于1)updateBalls中balls[i].更新,在距離地面非常近的時(shí)候,一幀的時(shí)間速度變化沒有balls[i].g這么大;2)在碰撞計(jì)算y方向速度取反時(shí),vy有可能是負(fù)值。如果有興趣可以自己嘗試做更加精準(zhǔn)的物理模擬,或者修改參數(shù)值達(dá)到更好的效果。更加精確的各類物理模擬我也在計(jì)劃推出專門課程講解,歡迎關(guān)注:)
2014-09-25
我也有這個(gè)問題