這個程序是2D的,用C#主要是因為GDI+寫起來比較方便,至少比可憐的MFC好用,雖然C#的東西又慢又占用CPU使用率。我發誓.NET的Timer肯定不是用WM_TIMER消息搞的,空轉占用CPU都那么高,而且用Sleep還降低不了。過高的CPU占用率持續過久會導致CPU溫度升高……
程序現在還有點問題。譬如物理引擎經典問題:浮點誤差和碰撞穿透。現在還沒100%處理好,雖然絕大多數情況下是沒什么事。第二個就是因為彈性超出了我的物理知識范圍,所以碰撞的速度更高暫時亂寫,等過幾天有空解一個三元二次方程組之后再改改代碼。
先放截圖三張,等程序改好了之后再把代碼弄出來。這個東西很好玩的,嘿嘿。考慮了重力哦。
一:創建了兩個有彈性7邊形

二:左邊的對象撞到了墻上

三:右邊的對象撞了地面

我曾經把彈性調的很小,邊數調得很大,結果出現了類似充水氣球的東西……