Godot Engine 學習筆記 StaticBody2D
StaticBody2D
StaticBody2D
以下為我對於官方文件的翻譯以及使用情況,3.0版本的文件
StaticBody2D官方文件
繼承: PhysicsBody2D < CollisionObject2D < Node2D < CanvasItem < Node < Object
型別: Core
簡要說明
2D物理學中的靜態體。
成員變數
- float bounce -
0
(無反彈)到1
(最大彈性)。 - float constant_angular_velocity - 物體體恆定的角速度。這不會旋轉物體,而是影響碰撞的物體,就像它在旋轉一樣。
- Vector2 constant_linear_velocity - 恆定的線性速度為物體。這不會移動物體,而是影響碰撞的身體,就像它在移動一樣。
- float friction - 身體的摩擦力值範圍從
0
(無摩擦)到1
(最大摩擦)。
描述
2D物理學中的靜態體。靜態體2D是一個不打算移動的物體。它是理想的環境中的物件,如牆壁或平臺。
此外,可以為靜態物體設定恆定的線性速度或角速度,這將影響碰撞物體,就好像它在移動(例如,傳送帶)。
使用
將建立三個場景分別為,球,地板,主場景。
球場景:
- RigidBody2D(然後單點節點名可以改名,將它改名為ball)
- Sprite
- CollisionShape2D(這是設定碰撞區域的)
然後拉個球的圖片進Sprite的texture屬性。
然後選擇CollisionShape2D節點,單擊它Shape屬性的null建立個圓形碰撞區域(也可以是別的形狀)。
然後場景中的會出現一塊半透明藍色圓形,用它中偏右的一個小點控制它大小,直到正好覆蓋整個圖形。
地板場景:
- RigidBody2D(然後單點節點名可以改名,將它改名為floor)
- Sprite
- CollisionShape2D(這是設定碰撞區域的)
為Sprite節點的texture屬性拉近一張長方形圖片,並用CollisionShape2D建立一個長方形碰撞區域。
建立主場景
- Node2D
通過場景樹編輯器上的鎖鏈狀按鈕例項化Ball和Floor場景的節點各一個,然後擺下位置,球在地板上方。
執行下看下。
將地板場景中StaticBody2D節點的Bounce屬性設定為0.5(預設為0無彈性)其他屬性為預設值。
執行。
將地板場景中StaticBody2D節點的Constant Angular Velocity屬性設定為6(預設為0,無角速度)其他屬性為預設值,後執行。
將地板場景中StaticBody2D節點的Constant Linear Velocity屬性設定為(200,0)(預設為(0,0),無線性速度)其他屬性為預設值,後執行。
將地板場景中StaticBody2D節點的Friction屬性設定為0(預設為1,最大摩擦)其他屬性隨意,後執行。
當摩擦為零,那麼與摩擦相關的移動(這裡是水平移動)將不會出現。