Hi,
ich programmiere im Moment mein 1. 2D Game mit DelphiX. Die Frage bezieht sich aber eher aufs Allgemeine, deshalb "Sonstige Fragen" und nicht "Multimedia".
Delphi-Quellcode:
type
THolz = class(TImageSprite)
Public
Constructor Create(aparent:Tsprite); override;
end;
var
Holz: Array[1..1] of THolz;
...
//Level wir erstellt und auch 1x Holz:
Holz[1] := THolz.Create(Sprite.Engine);
Holz[1].X := J * 31 + Round((31 - Holz[1].Width) / 2);
Holz[1].Y := I * 31 + Round((31 - Holz[1].Height) / 2);
Holz[1].Z := 1;
Jetzt kommt die ganz gewöhnliche Kollisionsabfrage:
procedure TSpieler.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
//Kollision abfragen
If (Sprite is TWand) then Kollision := True;
If (Sprite is TPlatzhalter) then Kollision := True;
If (Sprite is TZiel) then Ende := True;
If (Sprite is THolz) and then
begin
Kollision := True;
If Assigned(Holz[1]) then FreeAndNil(Holz[1]); //Hier kommt die Fehlermeldung (s. Screenshot)
frmMain.Player.FileName := 'Forest.wav';
frmMain.Player.Open;
frmMain.Player.Play;
end;
end;
Woran kann das liegen? Falls mehr Code benötigt wird, einfach nur sagen.
Chrissi91