Jypeli  5
The simple game programming library
EasyHighScore.cs
Siirry tämän tiedoston dokumentaatioon.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Reflection;
6 using System.ComponentModel;
7 
8 namespace Jypeli.Widgets
9 {
13  public class EasyHighScore
14  {
15  HighScoreWindow _hsWindow;
16  ScoreList score;
17  string fileName;
18 
23  {
24  get { return _hsWindow; }
25  }
26 
30  public InputWindow NameInputWindow
31  {
32  get { return _hsWindow.NameInputWindow; }
33  }
34 
38  public int MaxNameLength
39  {
40  get { return _hsWindow.MaxNameLength; }
41  set { _hsWindow.MaxNameLength = value; }
42  }
43 
47  public string Text
48  {
49  get { return _hsWindow.Message.Text; }
50  set { _hsWindow.Message.Text = value; }
51  }
52 
56  public string EnterText
57  {
58  get { return _hsWindow.NameInputWindow.Message.Text; }
59  set { _hsWindow.NameInputWindow.Message.Text = value; }
60  }
61 
65  public Color Color
66  {
67  get
68  {
69  return _hsWindow.Color;
70  }
71  set
72  {
73  _hsWindow.Color = value;
74  }
75  }
76 
83  public EasyHighScore(string fileName, int places, string defaultName)
84  {
85  this.score = new ScoreList(places, false, 0, defaultName);
86  this.fileName = fileName;
87  Game.AssertInitialized( LoadData );
88  Game.AssertInitialized( InitHSWindow );
89  }
90 
96  public EasyHighScore(string fileName, int places)
97  {
98  this.score = new ScoreList(places, false, 0);
99  this.fileName = fileName;
100  Game.AssertInitialized( LoadData );
101  Game.AssertInitialized( InitHSWindow );
102  }
103 
108  public EasyHighScore(int places)
109  : this(Game.Name + "_score.xml", places)
110  {
111  }
112 
116  public EasyHighScore()
117  : this(Game.Name + "_score.xml", 10)
118  {
119  }
120 
121  void InitHSWindow()
122  {
123  _hsWindow = new HighScoreWindow( "High score", score );
124  }
125 
129  public void Show()
130  {
132  }
133 
137  public void Clear()
138  {
139  score = new ScoreList( score._scores.Length, score.Reverse, 0 );
140  Game.DataStorage.Save<ScoreList>( score, fileName );
141  }
142 
148  public void EnterAndShow(double newScore)
149  {
150  HighScoreWindow.NameInputWindow.Closed += SaveData;
151  HighScoreWindow.ShowNameInput( newScore );
153  }
154 
155  private void SaveData(Window sender)
156  {
157  HighScoreWindow.NameInputWindow.Closed -= SaveData;
158  Game.DataStorage.Save<ScoreList>(score, fileName);
159  }
160 
161  private void LoadData()
162  {
163  score = Game.DataStorage.TryLoad<ScoreList>(score, fileName);
164  }
165  }
166 }
bool Reverse
Käänteinen järjestys, ts. pienempi tulos on parempi.
Definition: ScoreList.cs:99
virtual string Text
Teksti.
Definition: Label.cs:94
EasyHighScore(int places)
Luo uuden parhaiden pisteiden ikkunan.
static Game Instance
Definition: Game.cs:149
EasyHighScore()
Luo uuden parhaiden pisteiden ikkunan kymmenellä pistesijalla.
void Add(IGameObject o)
Lisää olion peliin. Tavalliset oliot tulevat automaattisesti kerrokselle 0 ja ruutuoliot päällimmäise...
Definition: Game.cs:691
void Clear()
Tyhjentää parhaat pisteet.
void Save(object obj, string fileName)
Ikkuna, joka sisältää käyttäjän määrittelemän kysymyksen, tekstinsyöttökentän ja OK-painikkeen. Ikkunan koko määräytyy automaattisesti tekstin ja ruudun koon mukaan.
Definition: InputWindow.cs:48
EasyHighScore(string fileName, int places)
Luo uuden parhaiden pisteiden ikkunan.
Peliluokka reaaliaikaisille peleille.
Definition: DebugScreen.cs:10
Parhaiden pisteiden ikkuna.
static FileManager DataStorage
Tietovarasto, johon voi tallentaa tiedostoja pidempiaikaisesti. Sopii esimerkiksi pelitilanteen lataa...
Definition: Game.cs:236
int MaxNameLength
Pisin mahdollinen nimi, jonka listaan voi syöttää.
EasyHighScore(string fileName, int places, string defaultName)
Luo uuden parhaiden pisteiden ikkunan.
Helpompikäyttöinen parhaiden pisteiden lista.
Parhaiden pisteiden lista.
Definition: ScoreList.cs:41
void EnterAndShow(double newScore)
Näyttää parhaat pisteet, ja jos annetut pisteet riittävät, antaa syöttää nimen listalle. Lista tallennetaan automaattisesti.
Väri.
Definition: Color.cs:13
void ShowNameInput(double newScore)
Näyttää nimensyöttöikkunan.
Label Message
Viesti tai kysymys.
InputWindow NameInputWindow
Nimensyöttöikkuna.
static void AssertInitialized(Action actionMethod)
Suorittaa aliohjelman kun peli on varmasti alustettu.
Definition: Game.cs:630
void Show()
Näyttää parhaat pisteet.