-
Notifications
You must be signed in to change notification settings - Fork 0
/
Camera.cs
47 lines (41 loc) · 1.3 KB
/
Camera.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
namespace ClockGame
{
public class Camera
{
public bool ifFollowPlayer;
private Matrix transform;
private float scale;
public Camera()
{
transform = Matrix.Identity;
scale = 1;
ifFollowPlayer = true;
}
public void Update(Vector2 center, float rotation)
{
if (C.IsKeyDown(Keys.LeftControl))
scale *= 0.99f;
if (C.IsKeyDown(Keys.LeftShift))
scale *= 1.01f;
if (ifFollowPlayer)
{
transform =
Matrix.CreateTranslation(-center.X, -center.Y, 0)
* Matrix.CreateRotationZ(-rotation)
* Matrix.CreateScale(scale)
* Matrix.CreateTranslation(C.screenWidth * 0.5f, C.screenHeight * 0.5f, 0);
}
else
{
transform = Matrix.CreateTranslation(C.screenWidth * 0.5f, C.screenHeight * 0.5f, 0);
}
}
public void BeginDraw()
{
C.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, null, null, transform);
}
}
}