我正在開發2D遊戲,現在我面臨的一個問題是,如果不解決它,我就無法繼續。在我的項目中,我首先畫出不會隨相機移動的東西,而不是那些始終停留在相同位置的東西(主要是UI元素)。我的遊戲中鼠標的矩形設置爲鼠標位置+ X和Y中的相機中心。XNA - 隨相機移動的物體和不移動的物體之間的相互作用
因此,雖然玩家可以點擊UI元素(我現在使用鼠標和按鈕之間的相交功能,我將UI上的大部分工作留到了最後),如果我試圖在鼠標和任何實際隨相機移動的任何事物之間進行交互,它將無法工作,因爲鼠標的座標與相機「比較」而對象不是,我不知道如何使它工作。
這裏是攝像機的代碼:
class Camera
{
public Matrix transform;
Viewport view;
Vector2 centre;
int x;
int y;
float zoom;
public Camera(Viewport newView)
{
view = newView;
x = 0;
y = 0;
zoom = 1;
}
public Vector2 getCentre()
{
return this.centre;
}
public void Update(GameTime gametime)
{
if (Mouse.GetState().Y < 45 && y >= 5)
y -= 3;
if (Mouse.GetState().Y > 400 && y < 650)
y += 3;
if (Mouse.GetState().X > 580 && x < 90)
x += 3;
if (Mouse.GetState().X < 60 && x > -100)
x -= 3;
centre = new Vector2(x, y);
transform = Matrix.CreateScale(new Vector3(1,1,0)) * Matrix.CreateTranslation(new Vector3(-centre.X,-centre.Y,0));
}
}