附錄 B:範例程式說明「PhysicsImpulseExample(物理衝量)」

附錄 B:範例程式說明「PhysicsImpulseExample(物理衝量)」

PhysicsImpulseExample 是對載具施加物理衝量的範例。SDK 1.3.3.0 中的資料夾名稱為 PhysicsImpulseGym,SDK 1.4.1.0 將其改為目前的名稱。 可以比較 SDK 1.3.3.0 新增的 ApplyImpulse 和 ApplyAreaImpulseAndDama...

PhysicsImpulseExample 要看什麼

PhysicsImpulseExample 是對載具施加物理衝量的範例。SDK 1.3.3.0 中的資料夾名稱為 PhysicsImpulse_Gym,SDK 1.4.1.0 將其改為目前的名稱。
可以比較 SDK 1.3.3.0 新增的 ApplyImpulseApplyAreaImpulseAndDamage 的用法。

包含的主要檔案

檔案 作用
PhysicsImpulseExample.ts 衝量、範圍判定、偵錯顯示的主體
PhysicsImpulseExample.tscn 測試載具、按鈕、位置的配置範例
README_PhysicsImpulse.ts 物理衝量 API 說明
tsconfig.json 範例的 TypeScript 設定

物理衝量 API

名稱 作用
mod.ApplyImpulse(...) 對指定一台載具,以位置、方向、強度施加衝量
mod.ApplyAreaImpulseAndDamage(...) 對指定範圍內載具施加衝量,並可附加傷害

目標載具已經確定時使用 ApplyImpulse
爆炸、推開區域、範圍機關等需要中心點和半徑的處理,則使用 ApplyAreaImpulseAndDamage

處理流程

範例用按鈕或輸入作為觸發,對載具施加衝量。
對比單車推動和範圍衝量,就能看出參數的思路。

方向通常與 CreateVectorDirectionTowards 組合決定。
強度從小值開始,只增加到載具按預期反應為止。

注意點

範圍衝量很方便,但半徑太大時會一次影響很多載具。
如果在高頻 Ongoing 中反覆執行,效能和遊戲體驗都會變差。

偵錯時,把半徑、強度、傷害量設為常數,再逐步提高。

結論

PhysicsImpulseExample 是學習推動載具、擊飛載具、讓載具對範圍做出反應的教材。
單一目標用 ApplyImpulse,範圍處理用 ApplyAreaImpulseAndDamage。只要先分清這一點,載具機關就好設計得多。