Autor Beitrag
Xclusive
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56


C#
BeitragVerfasst: So 12.12.10 19:54 
Ich will für mein Spiel "Schiffeversenken" eine Rangliste einbauen.

Wie soll ich das ganze speichern? (Will es erstmals nur lokal machen)
Mit einer XML-Datei?
Und in was soll ich das ganze dann Anzeigen? (Gibts da eine Tabelle?)

Sollte 3 Spalten haben: Rang Name Wertung

Mit freundlichen Grüßen
huuuuuh
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 665
Erhaltene Danke: 19

win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
BeitragVerfasst: So 12.12.10 23:13 
Hi,

zum lokalen speichern in einer XML schau dir mal da Thema XML-(De)Serialisierung an. www.c-sharp-library....und+laden_64947.html
und für die Tabelle: es gibt eine Komponente namens GridView (oder so ähnlich)
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 12.12.10 23:22 
Wahrscheinlich kommt wieder gleich jemand mit Datenquellen und LINQ und so, aber ich wage es trotzdem mal, eine ganz einfache Implementierung für die Anzeige vorzuschlagen: Erstelle ein ListView, wähle Details als Anzeigemodus aus und erstelle die drei Spalten. Beim Laden der Highscore gehst du alle Daten (die du in einer List<HighScoreItem> gespeichert hast) durch und fügst der Reihe nach die Einträge in die ListView ein:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
listView.BeginUpdate();
try {
  for (int i = 0; i < highScore.Count; i++) {
    HighScoreItem item = highScore[i];
    listView.Items.Add(new ListViewItem(new String[] { i.ToString(), item.Name, item.Score });
  }
finally {
  listView.EndUpdate();
}

Das listView.BeginUpdate sorgt dafür, dass der Einfügeprozess schneller und flüssig abläuft.
Xclusive Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56


C#
BeitragVerfasst: Mo 13.12.10 19:03 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wahrscheinlich kommt wieder gleich jemand mit Datenquellen und LINQ und so, aber ich wage es trotzdem mal, eine ganz einfache Implementierung für die Anzeige vorzuschlagen: Erstelle ein ListView, wähle Details als Anzeigemodus aus und erstelle die drei Spalten. Beim Laden der Highscore gehst du alle Daten (die du in einer List<HighScoreItem> gespeichert hast) durch und fügst der Reihe nach die Einträge in die ListView ein:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
listView.BeginUpdate();
try {
  for (int i = 0; i < highScore.Count; i++) {
    HighScoreItem item = highScore[i];
    listView.Items.Add(new ListViewItem(new String[] { i.ToString(), item.Name, item.Score });
  }
finally {
  listView.EndUpdate();
}

Das listView.BeginUpdate sorgt dafür, dass der Einfügeprozess schneller und flüssig abläuft.


Vielen Dank!
Sowas hab ich für den Anfang gesucht.
Später kann man das ganze erweitern, mit einer globalen Rangliste usw.
Aber für den Anfang ist das perfekt.... : )


Noch eine Frage: Werden die Daten beim beenden gelöscht oder bleiben die da?


MfG
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 13.12.10 19:15 
Die Daten sind ja in Objekte gespeichert, die im Arbeitsspeicher abgelegt werden. Natürlich werden die bei Programmende freigegeben.

Wie man sie dauerhaft speichert hat user profile iconhuuuuuh ja schon gepostet.