在C#中,可以使用Vector2結構來表示2D向量,并且可以利用其提供的方法和屬性來進行碰撞檢測。以下是一個簡單的例子,演示如何利用Vector2進行碰撞檢測:
using System;
using System.Numerics;
class Program
{
static void Main()
{
Vector2 playerPosition = new Vector2(0, 0);
Vector2 enemyPosition = new Vector2(5, 5);
float playerRadius = 1.0f;
float enemyRadius = 1.0f;
if (Vector2.Distance(playerPosition, enemyPosition) < playerRadius + enemyRadius)
{
Console.WriteLine("Collision detected!");
}
else
{
Console.WriteLine("No collision detected.");
}
}
}
在上面的代碼中,我們首先定義了兩個2D向量playerPosition
和enemyPosition
分別表示玩家和敵人的位置。然后定義了玩家和敵人的半徑playerRadius
和enemyRadius
。最后使用Vector2.Distance
方法計算玩家和敵人之間的距離,如果距離小于兩者半徑之和,則判斷為發生碰撞。
當然,實際項目中的碰撞檢測可能更加復雜,可以考慮使用碰撞框、碰撞圓等形狀來進行檢測,也可以結合物理引擎來實現更加精確的碰撞檢測。