2011-05-14 41 views
1

我有一個球在屏幕上移動,具體取決於手機傾斜的方式。我如何在球上施加摩擦,以便當手機平放時,球最終會停下來?將摩擦應用到對象

+0

像摩擦一樣在表面上滾動/滑動,或像在空氣/水中移動一樣摩擦? – Beta 2011-05-14 17:31:32

回答

2

不知道你的型號和具體方法的詳細程度,我會說,最好的方式做到這一點將摩擦看作是一個具有小恆定量值的矢量,並且始終指向與球的速度矢量相反的方向。只需通過實驗就可以爲不同的模擬表面類型提供合適的量值。每次更新球的位置和速度時,只需將該摩擦矢量包含在計算中即可。

0

最好使用Box2d爲了得到物理運動

在Box2D中用於獲取摩擦...

使用本

b2fixtureDef *fd; 
fd->friction = 0.7;(or whatever) 
+0

@Conor:你暗示這是爲了學校?如果是這樣的話,請用[家庭作業]標記你的問題。 – 2011-05-14 16:49:40

1

摩擦是作用於運動相反的力,所以你只需要創建一個矢量來表示與速度矢量相反方向的摩擦。

摩擦矢量的大小決定物體停止的速度。這是一個基於移動物體的材質和它正在移動的東西的常量值。只要做出一些看起來不錯的東西來達到你的目的。

將摩擦矢量添加到加速度矢量(當iphone平放在桌子上時爲零)。現在只需像往常一樣進行插值,最終會導致對象停止移動。

(順便說一句,當對象不動摩擦向量應設爲零)