Einzelnen Beitrag anzeigen

oxmox.

Registriert seit: 13. Sep 2009
6 Beiträge
 
#8

Re: [Snake-Spiel] - brauche eure Hilfe

  Alt 20. Sep 2009, 14:02
danke für die Antworten.

Ich hab jetzt alles wieder übeareitet.
Nun funktioniert auch alles, außer 2 Dinge.

1. gelegentlich taucht plätzlich folgende Fehlermeldung auf:
http://img5.imagebanana.com/view/wyq...rror.snake.JPG

2. der Highscore funktioniert nicht immer ^^
hier eine kurze erklärung, wie der Highscore in meinem Programm funktionieren soll.
---
wenn das Programm gestartet wird, wird ein .ini Datei estellt, falls diese noch nicht vorhanden ist.
in die .ini Datei wird die Punktzahl '0' reingeschreiben, die dann in ein label-feld in der Form abgespeichert wird.
wenn man das Spiel beendet, bzw verloren hat, wird die aktuell erreichte Punktzahl mit der aus diesem label-feld verglichen.
wenn die gerade erreichte Punktzahl größer, als die im label (in der ini datei) ist, dann wird die 2. Form geladen, inder
man dann seinen Namen einträgt und dieser dann, mit der erreichten Punnktzahl in die ini datei geschreiben wird.

hier mal der Code:

Delphi-Quellcode:

procedure InIniSchreiben (Filename, Section, Key, Value: string);
var ini: Tinifile;
begin
  ini:= tinifile.Create(Filename);
  try
    ini.WriteString(section, key, value);
  finally
    ini.Free;
  end;
end;

function InIniLesen (Filename, Section, Key: string):string;
var ini: Tinifile;
begin
  ini:= tinifile.Create(Filename);
  try
    result:= ini.ReadString(section, key, '');
  finally
    ini.Free;
  end;
end;

procedure Delay (const Milliseconds: DWord);
var FirstTickCount: DWord;
begin
  FirstTickCount:= GetTickCount;
  while ((GetTickCount - FirstTickCount) < Milliseconds) do
    begin
      Application.ProcessMessages;
      Sleep(0);
    end;
end;

procedure TForm1.spiel_ende;
begin
  ende:= True;
  Timer1.Enabled:= False;
  buttons_freigeben(False);
  Button1.Enabled:= True;
  button6.Enabled:= false;
end;

procedure TForm1.schlange;
var i, j: Integer;
    filename: string;
begin
  for i:= 0 to breite do
    for j:= 0 to hoehe do
      if map[i, j] > 0 then
        Dec(map[i, j]);
  Inc(kopf.X, richtung.X);
  Inc(kopf.Y, richtung.Y);
  if checkbox1.Checked= true then
    begin
      if (kopf.X < 0) then
        Kopf.X:= kopf.X + Breite + 1;
      if Kopf.Y < 0 then
        Kopf.Y:= kopf.Y + Hoehe + 1;
      if Kopf.X > Breite then
        Kopf.X:= Kopf.x - Breite - 1;
      if Kopf.Y > Hoehe then
        Kopf.Y:= Kopf.Y - Hoehe - 1;
    end
  else
    if (kopf.X < 0) or (kopf.X > breite) or (kopf.Y < 0) or (kopf.Y > hoehe) then
      begin
        spiel_ende;
        showmessage('Spiel beendet' + #10#13 + 'Sie haben den Rand berührt');
        checkbox1.Enabled:= true;
        if label10.Caption > label17.Caption then
          begin
            form2.Label3.Caption:= inttostr(punkte-1);
            form2.Show;
          end;
      end;
    if (map[kopf.X, kopf.Y]>0) and (not ende) then
      begin
        spiel_ende;
        showmessage('Spiel beendet' + #10#13 + 'Sie haben sich selbst gebissen');
        checkbox1.Enabled:= true;
        if label10.Caption > label17.Caption then
          begin
            form2.Label3.Caption:= inttostr(punkte-1);
            form2.Show;
          end;
  end;
2. Form:

Delphi-Quellcode:

procedure InIniSchreiben (Filename, Section, Key, Value: string);
var ini: Tinifile;
begin
  ini:= tinifile.Create(Filename);
  try
    ini.WriteString(section, key, value);
  finally
    ini.Free;
  end;
end;

function InIniLesen (Filename, Section, Key: string):string;
var ini: Tinifile;
begin
  ini:= tinifile.Create(Filename);
  try
    result:= ini.ReadString(section, key, '');
  finally
    ini.Free;
  end;
end;

procedure TForm2.Button1Click(Sender: TObject);
var filename: string;
begin
  filename:= extractfilepath(application.ExeName)+'Highscore.ini';
  InIniSchreiben(Filename, 'Highscore','var1',edit1.Text);
  InIniSchreiben(Filename, 'Highscore','var2',label3.Caption);
  if fileexists(filename) then
    begin
      form1.label15.Caption:= InIniLesen(Filename,'Highscore','var1');
      form1.label17.Caption:= InIniLesen(Filename,'Highscore','var2');
    end;
end;
Danke schonmal.
Angehängte Dateien
Dateityp: rar snake_331.rar (307,2 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat