我需要一个精灵跟照相机的帮助。我有一个没有正确遵循精灵的相机类。我的相机类是
camera cam;
cam.position = sprite.position;
这段代码没有正确执行。每次运行此代码时,它都会重置我的精灵,就像它在位置(0,0)然后跟随我的精灵一样。这是我所说的video example 我精灵的位置是(60,515)。
class Camera2d
{
public float _zoom;
public Matrix _transform;
public Vector2 _position;
protected float _rotation;
public Camera2d()
{
_zoom = 1.0f;
_rotation = 0.0f;
_position = Vector2.Zero;
}
//public float Zoom { }
//public float Rotation { }
public void Move(Vector2 amount)
{
_position += amount;
}
public Vector2 CPos
{
get { return _position; }
set { _position = value; }
}
public Matrix get_tranformation(GraphicsDevice graphicsDevice)
{
_transform = Matrix.CreateTranslation(new Vector3(-_position.X, -_position.Y, 0));
return _transform;
}
}
答案 0 :(得分:0)
您正在查看精灵偏移问题。你的精灵位置和你的相机位置之间的差异是什么。因此,您的精灵似乎始终位于{0,0}。
如果您将相机的位置偏移了视图高度和宽度的一半,那么它将显示为您的精灵的中心。
cam.position = sprite.position;
cam.position.x -= cam.width / 2;
cam.position.y -= cam.height / 2;