source: 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Graphics/Camera.cs @ 4521

Revision 4521, 1.4 KB checked in by dezhidki, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Microsoft.Xna.Framework;
6using CastleMaster.Input;
7
8namespace CastleMaster.Graphics
9{
10    public class Camera
11    {
12        private int xOffs = 0, yOffs = 0;
13        private Vector2 mouseWorldPos = Vector2.Zero;
14        private Point oldMousePos = Point.Zero;
15
16        public Camera()
17        {
18        }
19
20        #region Properties
21        public int XLeft
22        {
23            get { return xOffs; }
24            set { xOffs = value; }
25        }
26
27        public int YTop
28        {
29            get { return yOffs; }
30            set { yOffs = value; }
31        }
32
33        public int XRight
34        {
35            get { return xOffs + Game.WIDTH; }
36            set { xOffs = value - Game.WIDTH; }
37        }
38
39        public int YBottom
40        {
41            get { return yOffs + Game.HEIGHT; }
42            set { yOffs = value - Game.HEIGHT; }
43        }
44        #endregion
45
46        public void Update()
47        {
48            mouseWorldPos = Viewport.ScreenToWorld(InputHandler.MouseX + xOffs, InputHandler.MouseY + yOffs);
49        }
50
51        public void Zoom(float factor)
52        {
53            Viewport.ZOOM += factor;
54
55            xOffs = (int)((mouseWorldPos.X - mouseWorldPos.Y) * Viewport.X_SCALE_ZOOMED);
56            yOffs = (int)((mouseWorldPos.X + mouseWorldPos.Y) * Viewport.Y_SCALE_ZOOMED);
57        }
58    }
59}
Note: See TracBrowser for help on using the repository browser.