Я следовал за учебником на
http://www.david -amador.com / 2009/10 / xna-camera-2d-with-zoom-and-вращение / , чтобы получить камеру, которая соответствует моему спрайту плеера с функцией увеличения / уменьшения.
однако, когда я увеличиваю / уменьшаю камеру, кажется, что она либо медленно отодвигается от спрайта во время движения, я не думаю, что устанавливаю правильную позицию, но я не могу понять, что ей нужно быть.
Вот некоторые фрагменты, если это поможет
if (cam.Follow)
{
RectangleF temp = playerBoundingBox;
cam.Pos = new Vector2(
(temp.X + temp.Width / 2)*cam.Zoom,
temp.Y + temp.Height / 2) * cam.Zoom;
}
public Matrix get_transformation(GraphicsDevice graphicsDevice)
{
_transform =
// Add Zoom
Matrix.CreateScale(
new Vector3((_zoom * _zoom * _zoom),
(_zoom * _zoom * _zoom), 0))
// Add Camera Rotation
* Matrix.CreateRotationZ(_rotation)
// Add Camera Position
* Matrix.CreateTranslation(
new Vector3((graphicsDevice.Viewport.Width * 0.5f) - _pos.X,
(graphicsDevice.Viewport.Height * 0.5f) - _pos.Y,
0));
return _transform;
}
Заранее спасибо.