0
在XNA 4.0中,我如何得到一個精靈移動到鼠標座標。我知道這可能是這樣做的:xna精靈鼠標位置
if (ms.LeftButton == ButtonState.Pressed)
{
Vector2 shipPos = new Vector2(ms.X,ms.Y);
}
但是因爲我使用的攝像頭跟在船後面,這不能正常工作。原因是鼠標的位置相對於屏幕,如果當我點擊窗口的左上角時船已經移動到讓(500,500)的位置,船就返回到(0,0) ,即使艱難,我也希望這艘船從船舶位置向角落移動。下面是我的矩陣代碼:
class Camera
{
public Matrix transform;
Viewport view;
Vector2 centre;
public Camera(Viewport newView)
{
view = newView;
}
public void Update(GameTime gameTime, Game1 ship)
{
int w = Game1.width;
int h = Game1.height;
centre = new Vector2(ship.FSpos.X - (w/2 - 189/2),
ship.FSpos.Y - (h/2-128/2));
transform = Matrix.CreateScale(new Vector3(1, 1, 0)) *
Matrix.CreateTranslation(new Vector3(-centre.X, -centre.Y, 0));
}
}
哎呀,不好用語言:d。我的意思是船舶應該從中心(例如(500,500))移到相對於位於左上角的地圖的位置。這些座標是狂野的猜測,但相對於世界的座標可能是(100,740) – John
嗯......有人刪除了他的評論:D – John
根據您的相機如何定義,您不能只添加相機的偏移量嗎?例如'shipPos = new Vector2(ms.X,ms.Y)+ camera.TopLeftCorner;' – itsme86