Description:
Fix debouncing and only apply to certain keys.
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r7:accb2e8529fe -

@@ -1,4 +1,5
1 using System;
1 using System;
2 using System.Linq;
2 using Microsoft.Xna.Framework;
3 using Microsoft.Xna.Framework;
3 using Microsoft.Xna.Framework.Graphics;
4 using Microsoft.Xna.Framework.Graphics;
4
5
@@ -10,6 +11,7
10 public Vector2 position;
11 public Vector2 position;
11
12
12 float _zoom;
13 float _zoom;
14 float[] zoom_levels;
13
15
14
16
15 public static int world_width { get; set; }
17 public static int world_width { get; set; }
@@ -29,6 +31,13
29 position = Vector2.Zero;
31 position = Vector2.Zero;
30 }
32 }
31
33
34 public Camera(float[] zoomLevels)
35 {
36 this.zoom = 1.0f;
37 position = Vector2.Zero;
38 this.zoom_levels = zoomLevels;
39 }
40
32 public void Move(Vector2 change)
41 public void Move(Vector2 change)
33 {
42 {
34 this.position += change;
43 this.position += change;
@@ -56,5 +65,41
56 {
65 {
57 return screenPosition + this.position - Camera.display_offset;
66 return screenPosition + this.position - Camera.display_offset;
58 }
67 }
68
69 public float ZoomIn()
70 {
71 float next_level;
72
73 foreach (float level in this.zoom_levels)
74 {
75 if(level > this.zoom)
76 {
77 next_level = level;
78 this.zoom = next_level;
79 return next_level;
80 }
81 }
82
83 return this.zoom;
84
85 }
86
87 public float ZoomOut()
88 {
89 float next_level;
90
91 foreach (float level in this.zoom_levels.Reverse())
92 {
93 if (level < this.zoom)
94 {
95 next_level = level;
96 this.zoom = next_level;
97 return next_level;
98 }
99 }
100
101 return this.zoom;
102
103 }
59 }
104 }
60 }
105 }
@@ -23,7 +23,7
23 private Song music;
23 private Song music;
24 private SpriteFont font;
24 private SpriteFont font;
25
25
26 private Camera camera = new Camera();
26 private Camera camera = new Camera(new float[] {0.25f, 0.5f, 1.0f, 2.0f, 4.0f });
27
27
28 Random random_generator = new Random();
28 Random random_generator = new Random();
29
29
@@ -156,34 +156,33
156 }
156 }
157
157
158
158
159 if (keyboardCur.IsKeyDown(Keys.Down) && keyboardPrev.IsKeyUp(Keys.Down))
159 if (keyboardCur.IsKeyDown(Keys.Down) )
160 {
160 {
161 this.camera.Move(new Vector2(0, -2));
161 this.camera.Move(new Vector2(0, -2));
162 }
162 }
163 else if (keyboardCur.IsKeyDown(Keys.Up) && keyboardPrev.IsKeyUp(Keys.Up))
163 else if (keyboardCur.IsKeyDown(Keys.Up) )
164 {
164 {
165 this.camera.Move(new Vector2(0, 2));
165 this.camera.Move(new Vector2(0, 2));
166
166
167 }
167 }
168 else if (keyboardCur.IsKeyDown(Keys.Left) && keyboardPrev.IsKeyUp(Keys.Left))
168 else if (keyboardCur.IsKeyDown(Keys.Left) )
169 {
169 {
170 this.camera.Move(new Vector2(-2, 0));
170 this.camera.Move(new Vector2(-2, 0));
171
171
172 }
172 }
173 else if (keyboardCur.IsKeyDown(Keys.Right) && keyboardPrev.IsKeyUp(Keys.Right))
173 else if (keyboardCur.IsKeyDown(Keys.Right) )
174 {
174 {
175 this.camera.Move(new Vector2(2, 0));
175 this.camera.Move(new Vector2(2, 0));
176
176
177 }
177 }
178 else if (keyboardCur.IsKeyDown(Keys.Subtract) && keyboardPrev.IsKeyUp(Keys.Subtract))
178 else if (keyboardCur.IsKeyDown(Keys.Subtract) && keyboardPrev.IsKeyUp(Keys.Subtract))
179 {
179 {
180 this.camera.zoom *= 0.75f;
180 this.camera.ZoomOut();
181
182 }
181 }
183 else if (keyboardCur.IsKeyDown(Keys.Add) && keyboardPrev.IsKeyUp(Keys.Add))
182 else if (keyboardCur.IsKeyDown(Keys.Add) && keyboardPrev.IsKeyUp(Keys.Add))
184 {
183 {
185 this.camera.zoom *= 1.25f;
186
184
185 this.camera.ZoomIn();
187 }
186 }
188
187
189
188
@@ -232,6 +231,8
232 frameCounter = 0;
231 frameCounter = 0;
233 }
232 }
234
233
234 this.keyboardPrev = keyboardCur;
235
235 base.Update(gameTime);
236 base.Update(gameTime);
236
237
237
238
@@ -364,8 +365,7
364 drawTileAt(0, 0, 22, 1);
365 drawTileAt(0, 0, 22, 1);
365
366
366
367
367 //Warning: creates a flashing effect because tree positions update every 1/60th of a second
368 //*
368 /*
369
369
370
370
371
371
@@ -373,12 +373,19
373 {
373 {
374 for (int j = 0; j < 50; j += 1)
374 for (int j = 0; j < 50; j += 1)
375 {
375 {
376 //Warning: creates a flashing effect because tree positions update every 1/60th of a second
377
378 /*
376 if (this.random_generator.NextDouble() > 0.75)
379 if (this.random_generator.NextDouble() > 0.75)
377 {
380 {
378 drawTileAt(i, j, 142, 2);
381 drawTileAt(i, j, 142, 2);
382 }//*/
383
384 if ((i + j) % 3 == 0)
385 {
386 drawTileAt(i, j, 142, 2);
379 }
387 }
380
388
381
382 }
389 }
383 }//*/
390 }//*/
384
391
You need to be logged in to leave comments. Login now