]> git.r.bdr.sh - rbdr/super-polarity/blob - SuperPolarityMac/LetterChooseWidget.cs
e52733fed17bf3b7e977e8697dcea3e5509138a3
[rbdr/super-polarity] / SuperPolarityMac / LetterChooseWidget.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using Microsoft.Xna.Framework;
6 using Microsoft.Xna.Framework.Graphics;
7
8 namespace SuperPolarity
9 {
10 class LetterChooseWidget : Widget
11 {
12 int CurrentChar;
13 bool Locked;
14 int LockRate;
15 int CurrentTime;
16
17 SpriteFont Font;
18
19 public LetterChooseWidget(SuperPolarity game, Vector2 position) : base(game, position)
20 {
21 Active = false;
22 CurrentChar = 65;
23 Font = game.Content.Load<SpriteFont>("Fonts\\bigfont");
24 LockRate = 300;
25 CurrentTime = 0;
26
27 InputController.Bind("moveY", HandleMovement);
28 }
29
30 public void HandleMovement(float value)
31 {
32 if (!Active) { return; }
33
34 if (value > 0.8 && !Locked) {
35 CurrentChar = CurrentChar + 1;
36
37 if (CurrentChar > 90)
38 {
39 CurrentChar = 32;
40 }
41
42 Locked = true;
43 }
44
45 if (value < -0.8 && !Locked) {
46 CurrentChar = CurrentChar - 1;
47
48 if (CurrentChar < 32)
49 {
50 CurrentChar = 90;
51 }
52
53 Locked = true;
54 }
55 }
56
57 public override void Update(GameTime gameTime)
58 {
59 base.Update(gameTime);
60
61 CurrentTime = CurrentTime + gameTime.ElapsedGameTime.Milliseconds;
62 if (CurrentTime > LockRate)
63 {
64 CurrentTime = 0;
65 Locked = false;
66 }
67 }
68
69 public string Value()
70 {
71 return char.ConvertFromUtf32(CurrentChar);
72 }
73
74 public override void Draw(SpriteBatch spriteBatch)
75 {
76 var color = new Color(0, 0, 0, 128);
77 if (Active)
78 {
79 color = new Color(201, 0, 68, 255);
80 }
81 spriteBatch.DrawString(Font, Value(), Position, color);
82 }
83 }
84 }