Einzelnen Beitrag anzeigen

Premaider

Registriert seit: 31. Mär 2012
160 Beiträge
 
#10

AW: Spiel (Aspirin): Spieler kurzzeitig unverletzlich machen

  Alt 20. Okt 2012, 12:39
Delphi-Quellcode:
//Kollision Spieler und Gegner
For k:= low(gegner) to high(gegner) do
  begin
    if ((IsCollision(Gegner[k].BoundsRect, Spieler.BoundsRect)) and (Gegner[k].Cooldown<=0)) Then //hier wird die Zugriffsverletzung angzeigt
          begin
            If Spieler.Verletzbar Then Dec(Herzen);
            If ((Herzen=4) and (Spieler.Verletzbar)) Then
              begin
                Spieler.Verletzbar:=False;
                Abwarten2.Enabled:=True;
                Herz5.picture.loadfromfile(Pfad+'\Datein\Herz_Leer.jpg');
              end
            Else If ((Herzen=3) and (Spieler.Verletzbar)) Then
              begin
                Spieler.Verletzbar:=False;
                Abwarten2.Enabled:=True;
                Herz4.picture.loadfromfile(Pfad+'\Datein\Herz_Leer.jpg');
              end
            Else If ((Herzen=2) and (Spieler.Verletzbar)) Then
              begin
                Spieler.Verletzbar:=False;
                Abwarten2.Enabled:=True;
                Herz3.picture.loadfromfile(Pfad+'\Datein\Herz_Leer.jpg');
              end
            Else If ((Herzen=1) and (Spieler.verletzbar)) Then
              begin
                Spieler.Verletzbar:=False;
                Abwarten2.Enabled:=True;
                Herz2.picture.loadfromfile(Pfad+'\Datein\Herz_Leer.jpg');
              end;
          end
        Else If ((Herzen=0) and (Spieler.verletzbar)) then //hier müsste die Zugriffsverletzung eigendlich stehen oder ?
          begin
            Verloren;
            Spieler.verletzbar:=false;
            Abwarten2.Enabled:=True;
            Herz1.Picture.LoadFromFile(Pfad+'\Datein\Herz_leer.jpg');
          end;
  end;
Leider bekomme ich jetzt manchmal eine Zugriffsverletzung. Wenn nur wenige Gegner exsistieren dann ist alles ganz normal. Doch sobald es mal ein paar mehr sind(Ich weiß leider nicht wieviele es dafür sein müssen) bekomme ich eine Zugriffsverletzung sobald man verliert. (Verloren-Procedure)
Weiß jemand warum ?
  Mit Zitat antworten Zitat