blob: 4c7797d475a3850c78ac9be9120b647a1da6a094 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace SuperPolarity
{
class NameChooserWidget : Widget
{
int CurrentIndex;
bool Lock;
int LockRate;
int CurrentTime;
public NameChooserWidget(SuperPolarity game, Vector2 position)
: base(game, position)
{
AppendChild(new LetterChooseWidget(game, new Vector2(position.X, position.Y)));
AppendChild(new LetterChooseWidget(game, new Vector2(position.X + 32, position.Y)));
AppendChild(new LetterChooseWidget(game, new Vector2(position.X + 64, position.Y)));
CurrentIndex = 0;
Children[CurrentIndex].Activate();
LockRate = 300;
CurrentTime = 0;
InputController.Bind("moveX", HandleMovement);
}
public override void Update(GameTime gameTime)
{
base.Update(gameTime);
CurrentTime = CurrentTime + gameTime.ElapsedGameTime.Milliseconds;
if (CurrentTime > LockRate)
{
CurrentTime = 0;
Lock = false;
}
foreach (LetterChooseWidget widget in Children)
{
widget.Update(gameTime);
}
}
public void HandleMovement(float value)
{
if (value > 0.8 && !Lock)
{
Children[CurrentIndex].Deactivate();
CurrentIndex = CurrentIndex + 1;
if (CurrentIndex > Children.Count - 1)
{
CurrentIndex = 0;
}
Lock = true;
}
if (value < -0.8 && !Lock)
{
Children[CurrentIndex].Deactivate();
CurrentIndex = CurrentIndex - 1;
if (CurrentIndex < 0)
{
CurrentIndex = Children.Count - 1;
}
Lock = true;
}
Children[CurrentIndex].Activate();
}
public string Value()
{
var name = "";
foreach (LetterChooseWidget letter in Children)
{
name = name + letter.Value();
}
return name;
}
public override void Draw(SpriteBatch spriteBatch)
{
foreach (LetterChooseWidget widget in Children)
{
widget.Draw(spriteBatch);
}
}
}
}
|