After some tuning and thinking and drawing diagrams here's a fixed. But if there's another method please share. Anyways here's my Solution,
This is passed to Spritebatch.begin -- Matrix param
| public Matrix get_transformation()
{
_transform =
Matrix.CreateTranslation(new Vector3(-_pos.X, _pos.Y, 0)) *
Matrix.CreateRotationZ(Rotation) *
Matrix.CreateScale(Zoom,Zoom,1.0f)*
Matrix.CreateTranslation(new Vector3(graphicsDevice.Viewport.Width * 0.5f, graphicsDevice.Viewport.Height * 0.5f, 0));
return _transform;
}
|
This is passed to Spritebatch.Draw -- Vector2 position param
| public Vector2 WorldtoScreen(Vector2 In)
{
Vector2 Result = In;
Result.Y = -In.Y;
return Result;
}
|