我需要将图像放在相机的相同位置。如果它正在移动我想要移动图像,但我不知道该位置的参数。几个月前我已经开始在xna和c#编程了所以我对此一无所知。你需要更多的信息吗?这是我的camera2D代码:
public class Camera
{
public Matrix trasform;
public Matrix Trasform
{
get { return trasform; }
}
private Vector2 center;
private Viewport view;
public Camera(Viewport newView)
{
view = newView;
}
public void Update(Vector2 position, int xOffset, int yOffset)
{
if (position.X < view.Width / 2)
center.X = view.Width / 2;
else if (position.X > xOffset - (view.Width / 2))
center.X = xOffset - (view.Width / 2);
else center.X = position.X;
if (position.Y < view.Height / 2)
center.Y = view.Height / 2;
else if (position.Y > yOffset - (view.Height / 2))
center.Y = yOffset - (view.Height / 2);
else center.Y = position.Y;
trasform = Matrix.CreateTranslation(new Vector3(-center.X + (view.Width / 2),
-center.Y + (view.Height / 2), 0));
}
}
我想我必须使用视口,但我不知道它的所有功能,我在网上找不到任何东西。
答案 0 :(得分:0)
如果我遇到您的问题,您使用transformMatrix
spriteBatch.Begin
参数来绘制您的游戏。
如果您需要在屏幕上添加一些2D图形(分数,时间......),则需要在没有spriteBatch
的情况下打开另一个transformMatrix
,这样您在spriteBatch.Draw
中使用的每个坐标都是如此或DrawString
对应于您的屏幕坐标。