source: 2014/30/MikkoI/WindowsGame1/WindowsGame1/WindowsGame1/Game1.cs @ 5607

Revision 5607, 7.9 KB checked in by mijoilmo, 6 years ago (diff)

muutoksia skriptiin sekä kursori

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using Microsoft.Xna.Framework;
5using Microsoft.Xna.Framework.Audio;
6using Microsoft.Xna.Framework.Content;
7using Microsoft.Xna.Framework.GamerServices;
8using Microsoft.Xna.Framework.Graphics;
9using Microsoft.Xna.Framework.Input;
10using Microsoft.Xna.Framework.Media;
11
12namespace WindowsGame1
13{
14    /// <summary>
15    /// This is the main type for your game
16    /// </summary>
17    public class Pikseli : Microsoft.Xna.Framework.Game
18    {
19        GraphicsDeviceManager graphics;
20        //ContentManager contentManager;
21        SpriteBatch spriteBatch;
22        Vector2 screenSize = new Vector2(1920, 1080);
23        MouseState currentMouseState;
24        MouseState previousMouseState;
25        Vector2 mapSize = new Vector2(40, 40);
26        public Vector2 mousePos = new Vector2(0, 0);
27        public Random random;
28        Camera camera;
29        MapRenderer mapRenderer;
30
31        public Dictionary<string, Texture2D> textures = new Dictionary<string, Texture2D>();
32
33        List<Map> allMaps = new List<Map>();
34        int currentMapIndex = 0;
35
36        BasicEffect effect;
37
38        public static Pikseli Instance;
39        public GameTime gameTime;
40
41        public Pikseli()
42        {
43            Instance = this;
44            graphics = new GraphicsDeviceManager(this);
45            graphics.PreferredBackBufferWidth = (int)screenSize.X;
46            graphics.PreferredBackBufferHeight = (int)screenSize.Y;
47
48            //graphics.IsFullScreen = true;
49            //contentManager = new ContentManager();
50            Content.RootDirectory = "Content";
51            currentMouseState = new MouseState();
52        }
53
54        /// <summary>
55        /// Allows the game to perform any initialization it needs to before starting to run.
56        /// This is where it can query for any required services and load any non-graphic
57        /// related content.  Calling base.Initialize will enumerate through any components
58        /// and initialize them as well.
59        /// </summary>
60        protected override void Initialize()
61        {
62            // TODO: Add your initialization logic here
63            random = new Random();
64            camera = new Camera(screenSize);
65            base.Initialize();
66        }
67
68        /// <summary>
69        /// LoadContent will be called once per game and is the place to load
70        /// all of your content.
71        /// </summary>
72        void LoadTextures()
73        {
74            /*LOAD ALL TEXTURES*/
75            textures.Add("testitile", Content.Load<Texture2D>("Graphics/Test/taso5.1"));
76            textures.Add("test/select", Content.Load<Texture2D>("Graphics/Test/Select"));
77
78            //KÄYTETTÄVÄT PUUT
79            textures.Add("puut/kuusi", Content.Load<Texture2D>("Graphics/Puut/kuusi"));
80            textures.Add("puut/mänty", Content.Load<Texture2D>("Graphics/Puut/mänty"));
81            textures.Add("puut/ohut", Content.Load<Texture2D>("Graphics/Puut/ohut"));
82            textures.Add("puut/kuollut", Content.Load<Texture2D>("Graphics/Puut/kuollut"));
83
84            //TAIVAS
85            textures.Add("taivas/aurinko", Content.Load<Texture2D>("Graphics/Taivas/Aurinko"));
86            textures.Add("taivas/tähdet", Content.Load<Texture2D>("Graphics/Taivas/Tähdet"));
87
88            //OLENNOT
89            textures.Add("olennot/ukko", Content.Load<Texture2D>("Graphics/Olennot/Ukko"));
90
91            //GUI
92            textures.Add("gui/cursor", Content.Load<Texture2D>("Graphics/Gui/Cursor"));
93        }
94        protected override void LoadContent()
95        {
96            // Create a new SpriteBatch, which can be used to draw textures.
97            spriteBatch = new SpriteBatch(GraphicsDevice);
98
99            allMaps.Add(new Map(new Texture2D(GraphicsDevice, 1, 1), 20, 20));
100
101            mapRenderer = new MapRenderer(spriteBatch, allMaps[currentMapIndex], camera);
102
103            LoadTextures();
104
105            effect = new BasicEffect(GraphicsDevice);
106
107            // TODO: use this.Content to load your game content here
108        }
109
110        /// <summary>
111        /// UnloadContent will be called once per game and is the place to unload
112        /// all content.
113        /// </summary>
114        protected override void UnloadContent()
115        {
116            // TODO: Unload any non ContentManager content here
117        }
118
119        /// <summary>
120        /// Allows the game to run logic such as updating the world,
121        /// checking for collisions, gathering input, and playing audio.
122        /// </summary>
123        /// <param name="gameTime">Provides a snapshot of timing values.</param>
124        protected override void Update(GameTime gameTime)
125        {
126            this.gameTime = gameTime;
127
128            // Allows the game to exit
129            if (Keyboard.GetState(PlayerIndex.One).IsKeyDown(Keys.Escape))
130                this.Exit();
131
132            // TODO: Add your update logic here
133
134            currentMouseState = Mouse.GetState();
135
136            int erotus = currentMouseState.ScrollWheelValue - previousMouseState.ScrollWheelValue;
137            if (erotus > 0)
138            {
139                camera.zoomFactor *= 1.2f;
140            }
141            else if (erotus < 0)
142            {
143                camera.zoomFactor /= 1.2f;
144            }
145
146            mousePos = new Vector2(currentMouseState.X,currentMouseState.Y);
147           
148            previousMouseState = currentMouseState;
149
150            ListenKeyBoard();
151
152            base.Update(gameTime);
153        }
154
155        void ListenKeyBoard()
156        {
157            if (Keyboard.GetState().IsKeyDown(Keys.Down))
158            {
159                camera.pitch += 0.6f;
160            }
161            else if (Keyboard.GetState().IsKeyDown(Keys.Up))
162            {
163                camera.pitch -= 0.6f;
164            }
165
166            if (Keyboard.GetState().IsKeyDown(Keys.Right))
167            {
168                camera.yaw -= 0.6f;
169            }
170            else if (Keyboard.GetState().IsKeyDown(Keys.Left))
171            {
172                camera.yaw += 0.6f;
173            }
174
175            float scrollSpeed = 9;
176
177            if (Keyboard.GetState().IsKeyDown(Keys.W))
178            {
179                //lisätään molempia koska tämä muokkaa translaatiota
180                camera.offset.X += (scrollSpeed / camera.zoomFactor) * (float)Math.Sin(MathHelper.ToRadians(camera.yaw));
181                camera.offset.Y += (scrollSpeed / camera.zoomFactor) * (float)Math.Cos(MathHelper.ToRadians(camera.yaw));
182            }
183            else if (Keyboard.GetState().IsKeyDown(Keys.S))
184            {
185                camera.offset.X -= (scrollSpeed / camera.zoomFactor) * (float)Math.Sin(MathHelper.ToRadians(camera.yaw));
186                camera.offset.Y -= (scrollSpeed / camera.zoomFactor) * (float)Math.Cos(MathHelper.ToRadians(camera.yaw));
187            }
188
189            if (Keyboard.GetState().IsKeyDown(Keys.A))
190            {
191                camera.offset.X += (scrollSpeed / camera.zoomFactor) * (float)Math.Cos(MathHelper.ToRadians(camera.yaw));
192                camera.offset.Y -= (scrollSpeed / camera.zoomFactor) * (float)Math.Sin(MathHelper.ToRadians(camera.yaw));
193            }
194            else if (Keyboard.GetState().IsKeyDown(Keys.D))
195            {
196                camera.offset.X -= (scrollSpeed / camera.zoomFactor) * (float)Math.Cos(MathHelper.ToRadians(camera.yaw));
197                camera.offset.Y += (scrollSpeed / camera.zoomFactor) * (float)Math.Sin(MathHelper.ToRadians(camera.yaw));
198            }
199
200
201        }
202
203        /// <summary>
204        /// This is called when the game should draw itself.
205        /// </summary>
206        /// <param name="gameTime">Provides a snapshot of timing values.</param>
207        protected override void Draw(GameTime gameTime)
208        {
209            GraphicsDevice.Clear(Color.Black);
210
211            // TODO: Add your drawing code here
212
213            mapRenderer.RenderMap();
214
215            base.Draw(gameTime);
216        }
217    }
218}
Note: See TracBrowser for help on using the repository browser.