source: 2012/23/RamiP/YAG2DSSBase/YAG2DSS/YAG2DSS/ALTKEngine/Cursor.cs @ 2768

Revision 2768, 6.1 KB checked in by ramipasa, 7 years ago (diff)

Muutettu ALTK-logiikoita toimimaan Jypelin kanssa.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Threading;
5using Microsoft.Xna.Framework;
6using Microsoft.Xna.Framework.Audio;
7using Microsoft.Xna.Framework.Content;
8using Microsoft.Xna.Framework.GamerServices;
9using Microsoft.Xna.Framework.Graphics;
10using Microsoft.Xna.Framework.Input;
11using Microsoft.Xna.Framework.Media;
12using Microsoft.Xna.Framework.Net;
13using Microsoft.Xna.Framework.Storage;
14
15namespace ALTK
16{
17    /// <summary>
18    /// This is a game component that implements IUpdateable.
19    /// </summary>
20    public class Cursor : Microsoft.Xna.Framework.DrawableGameComponent
21    {
22        Texture2D cursorTexture;
23        ContentManager content;
24        SpriteBatch spriteBatch;
25
26        public static int PosX;
27        public static int PosY;
28
29        public static int ScrollWheelValue = 0;
30        private int _scrollWheelValue = 0;
31
32        public static bool enableBasicInput = true;
33
34        public static bool leftPressed;
35        public static bool rightPressed;
36        public static bool leftClicked;
37        public static bool rightClicked;
38
39        public static int SecPosX;
40        public static int SecPosY;
41
42        public static bool SecLeftPressed;
43        public static bool SecRightPressed;
44        public static bool SecLeftClicked;
45        public static bool SecRightClicked;
46
47
48        public Cursor(Game game)
49            : base(game)
50        {
51            content = new ContentManager(game.Services);
52            // TODO: Construct any child components here
53        }
54
55        /// <summary>
56        /// Allows the game component to perform any initialization it needs to before starting
57        /// to run.  This is where it can query for any required services and load content.
58        /// </summary>
59        public override void Initialize()
60        {
61            base.Initialize();
62            this.DrawOrder = 24999;
63            spriteBatch = new SpriteBatch(GraphicsDevice);
64            cursorTexture = ALTKHandler.Loader.loadTexture("cursor");
65        }
66
67        protected override void LoadContent()
68        {
69            base.LoadContent();
70        }
71
72        /// <summary>
73        /// Allows the game component to update itself.
74        /// </summary>
75        /// <param name="gameTime">Provides a snapshot of timing values.</param>
76        public override void Update(GameTime gameTime)
77        {
78            // TODO: Add your update code here
79
80            MouseState ms = Mouse.GetState();
81
82            int newScrollWheelValue = ms.ScrollWheelValue;
83            int diffScrollWheelValue = 0;
84
85            //if (newScrollWheelValue > _scrollWheelValue && newScrollWheelValue > 0)
86            //{
87            //    diffScrollWheelValue = newScrollWheelValue - _scrollWheelValue;
88            //}
89            if (newScrollWheelValue > _scrollWheelValue)
90            {
91                diffScrollWheelValue = newScrollWheelValue - _scrollWheelValue;
92            }
93            //else if (newScrollWheelValue < _scrollWheelValue && newScrollWheelValue > 0)
94            //{
95            //    diffScrollWheelValue = newScrollWheelValue - _scrollWheelValue;
96            //}
97            else if (newScrollWheelValue < _scrollWheelValue)
98            {
99                diffScrollWheelValue = newScrollWheelValue - _scrollWheelValue;
100            }
101
102            ScrollWheelValue = diffScrollWheelValue / -120;
103            _scrollWheelValue = newScrollWheelValue;
104
105            if (System.Windows.Forms.Form.ActiveForm != null)
106            {
107                // Secondary input
108                //SecPosX = ms.X;
109                //SecPosY = ms.Y;
110
111                if (ms.LeftButton == ButtonState.Pressed)
112                    SecLeftPressed = true;
113                else
114                {
115                    if (SecLeftPressed)
116                        SecLeftClicked = true;
117                    else
118                        SecLeftClicked = false;
119
120                    SecLeftPressed = false;
121                }
122
123                if (ms.RightButton == ButtonState.Pressed)
124                    SecRightPressed = true;
125                else
126                {
127                    if (SecRightPressed)
128                        SecRightClicked = true;
129                    else
130                        SecRightClicked = false;
131
132                    SecRightPressed = false;
133                }
134
135                // Primary input
136
137                if (enableBasicInput)
138                {
139                    PosX = SecPosX;
140                    PosY = SecPosY;
141
142                    if (ms.LeftButton == ButtonState.Pressed)
143                        leftPressed = true;
144                    else
145                    {
146                        if (leftPressed)
147                            leftClicked = true;
148                        else
149                            leftClicked = false;
150
151                        leftPressed = false;
152                    }
153
154                    if (ms.RightButton == ButtonState.Pressed)
155                        rightPressed = true;
156                    else
157                    {
158                        if (rightPressed)
159                            rightClicked = true;
160                        else
161                            rightClicked = false;
162
163                        rightPressed = false;
164                    }
165                }
166                else
167                {
168                    PosX = -1;
169                    PosY = -1;
170
171                    leftClicked = false;
172                    leftPressed = false;
173                    rightClicked = false;
174                    rightPressed = false;
175                }
176            }
177
178            base.Update(gameTime);
179        }
180
181        public override void Draw(GameTime gameTime)
182        {
183            //MouseState ms = Mouse.GetState();
184
185            //spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied);
186            ////spriteBatch.Draw(cursorTexture, new Rectangle(ms.X, ms.Y, 32, 32), Color.White);
187            //spriteBatch.End();
188
189            //base.Draw(gameTime);
190            //spriteBatch.End();
191        }
192    }
193}
Note: See TracBrowser for help on using the repository browser.