![]() |
Sprite wird nicht unsichtbar
Ich habe einen Sprite vom Typ TSchwert und ich möchte das wenn man mit einem anderen Sprite das Schwert berührt dieses unsichtbar (Visible := false) wird. BEi mir kommt während der Laufzeit, wenn ich den Sprite berühre dieser Fehler :
"Zugriffsverletzung bei Adresse 0044163F im Modul 'MeinProgramm.exe' Schreiben von Adresse 0000001A" Was mache ich falsch ?
Delphi-Quellcode:
Bei der Brührung von TGegenstand wird der Spieler unsichtbar, aber wie mache ich das, wenn der Spieler gegen das Schwert läuft TSchwert unsichtbar wird ?
procedure TSpieler.DoCollision(Sprite: TSprite; var Done: Boolean);
begin if sprite is TGegenstand then begin Form1.DXWaveList1.Items.Find('sound').Play(False); dead; Visible := false; end; if sprite is TSchwert then begin Schwert.Visible := false; end; end; |
Re: Sprite wird nicht unsichtbar
Moin!
Dann scheint deine Variable Schwert keine Instanz zu beinhalten. Nimm daher doch einfach das übergebene Sprite, welches doch die Eigenschaft Visible schon bietet, oder?
Delphi-Quellcode:
Wenn nicht und erst TSchwert diese Property einführt, dann so:
procedure TSpieler.DoCollision(Sprite: TSprite; var Done: Boolean);
begin if sprite is TGegenstand then begin Form1.DXWaveList1.Items.Find('sound').Play(False); dead; Visible := false; end; if sprite is TSchwert then begin sprite.Visible := false; end; end;
Delphi-Quellcode:
MfG
procedure TSpieler.DoCollision(Sprite: TSprite; var Done: Boolean);
begin if sprite is TGegenstand then begin Form1.DXWaveList1.Items.Find('sound').Play(False); dead; Visible := false; end; if sprite is TSchwert then begin TSchwert(sprite).Visible := false; end; end; Muetze1 |
Re: Sprite wird nicht unsichtbar
Mein Problem ist: Mein Sprite bewegt sich, wenn ich bei ihm dead aufrufe, wird nur die Collision nicht mehr beachtet, alles andere läuft weiter. Und da jedesmal ein neues erzeugt wird, wenn das alte drauf geht, kann man 5-10 mal schießen, danach wird alles so langsam, das man den PC eigentlich neustarten müsste!
Wie kann ich das Sprite total auf Free setzen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz