![]() |
Delphi-Version: XE5
Highscore bei Spiel
Hallo,
Ich bin gerade dabei das Spiel 'Snake' zu Programmieren. Als Vorlage hatte ich ein Tutorial dieser Seite. Nun hab ich ein paar Fragen ob eine Erweiterung, so wie ich mir das Vorstelle, möglich ist. Folgendes hätte ich vor: -Der Highscore ist in einer anderen Unit, die mit der Hauptunit über die Unit Liste unter Implementation verknüpft ist. -Der Highscore ist durch das MainMenü und nach Spielende zu erreichen bzw. öffnet sich. -Der Highscore ist speicherbar, so dass man, wenn man das Spiel wieder mal öffnet den gleichen Highscore wieder hat. -Highscore sollt den Namen und die Erreichten Punkte anzeigen -Den Namen gibt man über ein Editorfeld in der Hauptunit ein. -Punkte werden über ein Label in der Hauptunit sichtbar. Wie löse ich das am besten mit dem Speichern? Ist die Lösung mit SaveDialog und speichern in einer *.txt Datei Sinnvoll? Für die Sortierung beim Highscore ist da BubbleSort die einfachste Möglichkeit? Und wie lasse ich das ganze am besten in dem extra Fenster anzeigen? Wär Super wenn ihr mir helfen könntet, da ich noch ein ziemlicher Anfänger in Sachen Programmieren bin, es aber für die Arbeit lernen muss. Lg Lena |
AW: Highscore bei Spiel
|
AW: Highscore bei Spiel
Leider ist nur zum Teil etwas nützliches dabei. Auf einige meiner Fragen finde ich keine Antwort.:(
|
AW: Highscore bei Spiel
Es wäre günstiger, je Thread nur eine Frage zu stellen, dann kann man auch zielgerichteter suchen. Welche Deiner Fragen sind denn noch offen?
|
AW: Highscore bei Spiel
Soll der Highscore "nur" auf Deinem PC gespeichert werden oder von allen Nutzern?
Mavarik PS.: ![]() |
AW: Highscore bei Spiel
Der Highscore soll nur auf meinem PC gespeichert sein.
Offene Fragen: Wie ich den Inhalt des Editorfeldes übergebe, denn bei mir geht das irgendwie nie. |
AW: Highscore bei Spiel
Was heißt "das geht nicht"? Angenommen, Du hast einen Record der Art
Delphi-Quellcode:
dann sollte sich der doch auch befüllen lassen.
type
THighscoreRec = record Name: Shortstring; Points: Cardinal; end;
Delphi-Quellcode:
Es mus ja auch nicht unbedingt ein Record an, aber da die beiden Felder zusammengehören, bietet sich ein solcher an, wenn man nicht gleich eine Klasse schreiben will.
var HSRec: THighscoreRec;
begin HSRec.Name := EditPlayer.Text; HSRec.Points := Punkte; end; |
AW: Highscore bei Spiel
Ich hätte das jetzt so gemacht, aber so bekomm ich die Fehlermeldung: Not enough actual parameters:
In der Unit mit dem Editorfeld:
Delphi-Quellcode:
In der Highscore Unit:
procedure TForm1.NameÜbertragen(Sender: TObject);
begin SpielerName:= edit1.Text; end;
Delphi-Quellcode:
Bei Form1.NameÜbertragen erscheint der Fehler.
procedure TForm2.Button2Click(Sender: TObject);
begin with ListView1.Items.Add do begin Caption := Form1.NameÜbertragen; Data:= Pointer(Versuche); SubItems.Add(IntToStr(Integer(Data))); end; end; |
AW: Highscore bei Spiel
Caption ist ein String und NameÜbertragen eine Prozedur(-Methode), das passt ja auch nicht zusammen. Oder sollte das eigentlich eine Funktion werden?
Delphi-Quellcode:
function TForm1.NameÜbertragen: string;
begin Result := edit1.Text; end; |
AW: Highscore bei Spiel
Super funktioniert! Danke! :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz