1. 程式人生 > >Godot Engine 學習筆記 StaticBody2D

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,最大摩擦)其他屬性隨意,後執行。
在這裡插入圖片描述
在這裡插入圖片描述
當摩擦為零,那麼與摩擦相關的移動(這裡是水平移動)將不會出現。