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 ?