Autor Beitrag
juKx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

WinXp Pro Sp2
Delphi 7 Enterprise Edition
BeitragVerfasst: Mi 26.10.05 22:00 
Hi,

ich programmiere gerade ein Spiel wo man mit der Maus einen herumfliegenden Ball fangen muss und wenn man das geschafft hat dann wird die Zeit genommen. Vorher kann man noch seinen Nickname eingeben. so nun zum problem: ich bekomme irgentwie nicht hin das dem Namen die zeit zugeordnet wird. Bei mir wird die Zeit immer jedem in der Highscoreliste zugeordnet und ich weiss langsam nicht mehr weiter.Wenn ich auf den HighscoreButton drücke soll ein Memo mir die Liste ausgeben. Hier Quelltext(nur die Sachen die mit der Highscoreliste zu tun haben): THX im Voraus für die Hilfe

ausblenden volle Höhe Delphi-Quelltext
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:
…..

type
  thighscore = record
            nickname:string[30];
            zeit:real;
          end;
  Tdatei = file of thighscore;

…..
Var f:Tdatei;
    sek:real;
procedure TForm1.FormActivate(Sender: TObject);
begin

  assignfile(f,'Highscore.dat');
  if FileExists('Highscore.dat') then
    Reset(f)
  else
    ReWrite(f);


……


procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
 
begin
  if (((X-xm)*(X-xm))+((Y-ym)*(Y-ym))<=(r*r)) then
    begin
      timer1.Enabled:=false;
      bis:=gettickcount;
      dauer:=bis-von;
      sek:=dauer/1000;
      refresh;

      eingabe.nickname:=name;
      eingabe.zeit:=sek;
      write(f,eingabe);

    end;


……


procedure TForm1.btscoreClick(Sender: TObject);
var score:string;
begin

….

memo1.Clear;

  seek(f,0);
  while not eof(f) do
  begin
    read(f,eingabe);
    score:=floattostrf(sek,fffixed,10,2)+' sec---('+eingabe.nick+')----';
    memo1.Lines.Add(Score);
  end;


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.
t_hanel
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 26.10.05 22:15 
hi

mach doch 2 arrays die nach einander in das memo ausgegeben werden können wäre viel einfacher... einfach ein array (nick) und ein array (points) und das füge dann abwechseld in ein memo oder eine stringlist ein und dann... zur ausgabe mach dir 5 labels für name und 5 für zeit (oder mögen es auch 10 sein, egal) du musst halt dann nur noch ne sortierung einbauen, die dir das eventuell umstellt wenn jemand den ersten platz macht oder den 3. aber das geht leicht mit ner for schleife...


ich hoff ich konnt dir einigermaßen helfen

bye

thomas
juKx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

WinXp Pro Sp2
Delphi 7 Enterprise Edition
BeitragVerfasst: Mi 26.10.05 22:45 
jo danke erstmal.

ich möchte aber das mit dem record behalten es muss ja uch irgentwie so gehen. und außerdem werde ich noch eine TList verwenden um die sortierung mir zu ersparen aber mein hauptproblem das nicht die richtigen werte angezeigt werden wie oben beschrieben.mach ich irgentetwas beim einschreiben in die highscore datei falsch oder beim auslesen?

memo feld bei mir sieht so aus(BSP):

1.23 sekunden --bernd--
1.23 sekunden --olaf--
1.23 sekunden --paul--


aber es soll ja für jeden benutzer die zeit angezeigt werden die er auch erzielt hat und nicht für alle benutzer die zu letz erreichte zeit!?
CASS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 160

WIN XP
D7 Enterprise
BeitragVerfasst: Do 27.10.05 07:37 
Servus, wahrscheinlich liegts daran:
Änder mal die Zeile
ausblenden Delphi-Quelltext
1:
score:=floattostrf(sek,fffixed,10,2)+' sec---('+eingabe.nick+')----';					

in folgende ab:
ausblenden Delphi-Quelltext
1:
score:=floattostrf(eingabe.zeit,fffixed,10,2)+' sec---('+eingabe.nick+')----';					


Gruß Benny
juKx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

WinXp Pro Sp2
Delphi 7 Enterprise Edition
BeitragVerfasst: Do 27.10.05 13:37 
hi,

sehr großen DANK an CASS. Jetzt funktioniert alles, das war mein Fehler wie er ihn beschrieben hat.

:) :)