290 likes | 365 Vues
Chapter 9 遊戲物理現象設計概念. 物理運動 物體間的碰撞 粒子的應用. 物理運動. 等速度運動 速度是物體在各個方向上「速度分量」的合成。. X 方向速度分量 Vx. Y 方向速度分量 Vy. 合成速度 V. 等速度運動的意義就指物體在每一個時刻的速度都是相同的,亦即 Vx 與 Vy 都保持不變。. 加速度運動 凡是物體移動時,其運動的速度或方向會隨著時間而改變,那麼該物體運動便是屬於加速度運動。. V=Vo+At. 重力 地心引力也就是重力,是一個在垂直方向 (Y 軸方向 ) 、值大約為 9.8m/sec 、方向向下的加速度。. 摩擦力
E N D
Chapter 9 遊戲物理現象設計概念 • 物理運動 • 物體間的碰撞 • 粒子的應用
物理運動 • 等速度運動 • 速度是物體在各個方向上「速度分量」的合成。 X方向速度分量Vx Y方向速度分量Vy 合成速度V
等速度運動的意義就指物體在每一個時刻的速度都是相同的,亦即Vx與Vy都保持不變。等速度運動的意義就指物體在每一個時刻的速度都是相同的,亦即Vx與Vy都保持不變。
加速度運動 • 凡是物體移動時,其運動的速度或方向會隨著時間而改變,那麼該物體運動便是屬於加速度運動。 V=Vo+At
重力 • 地心引力也就是重力,是一個在垂直方向(Y軸方向)、值大約為9.8m/sec、方向向下的加速度。
摩擦力 • 摩擦力是一種作用於運動物體上的負向力,摩擦力作用於運動物體上的結果,會產生一與物體運動方向相反的加速度,使得物體的運動越來越慢直到靜止不動為止。
小球落地接觸地面時其運動方向及作用於其上摩擦力的示意圖:小球落地接觸地面時其運動方向及作用於其上摩擦力的示意圖:
物體間的碰撞 • 碰撞偵測的方式不只一種,有的碰撞偵測是以範圍來偵測碰撞、有的碰撞偵測是以顏色來偵測碰撞、有的碰撞偵測是以行進路線是否交叉來偵測碰撞等等。
以範圍偵測碰撞 兩矩形的長和寬已交集表示產生碰撞 兩圓形的半徑已交集表示產生碰撞
當兩台不規則形狀的車子在同樣的高度上移動時,我們所要偵測兩車是否碰撞的方式只需要判斷這兩張車子的圖片長是否已交集。當兩台不規則形狀的車子在同樣的高度上移動時,我們所要偵測兩車是否碰撞的方式只需要判斷這兩張車子的圖片長是否已交集。 兩車圖示的長已交集表示兩車產生碰撞
以顏色偵測碰撞 • 以顏色偵測碰撞的方式是基本上是比較麻煩,不過這種碰撞偵測方式卻可以很精確的判斷兩個非規則狀物體是否真的發生碰撞 。
由上圖中是看不出任何蛛絲馬跡的,因為它無法以任何顏色為基準點來計算出是否發生碰撞,換了一張圖來試試看由上圖中是看不出任何蛛絲馬跡的,因為它無法以任何顏色為基準點來計算出是否發生碰撞,換了一張圖來試試看
接下來,以顏色判斷的方式來偵測是否產生碰撞,其概念如下列圖所示:接下來,以顏色判斷的方式來偵測是否產生碰撞,其概念如下列圖所示: 前景圖 車子移動 暗圖
以行進路線偵測碰撞 • 以行進路線來偵測是否碰撞的方式主要是偵測兩個移動的物體,或者是移動物體與平面是否發生碰撞 。
我們以向量來判斷一個具有速度值的小球是否與斜面(非水平與垂直)會發生碰撞。我們以向量來判斷一個具有速度值的小球是否與斜面(非水平與垂直)會發生碰撞。
與斜面碰撞後的速度 • 小球與斜面發生完全碰撞並反彈的示意圖:
粒子的應用 • 粒子的定義 • 要使用粒子,首先我們必須先瞭解到粒子的用途與特性,然後再定義出一個適合的粒子類型。在C語言中,我們要定義某種粒子的型態是相當容易的,只要自訂一個粒子的結構就行了 。
下面的這個自訂結構snow便是用來代表「雪花」粒子:下面的這個自訂結構snow便是用來代表「雪花」粒子: struct snow { int x; //雪花所在的 X 座標 int y; //雪花所在的 Y 座標 BOOL exist; //是否存在 };