![]() |
DelphiX Kollision nur mit Bestandteil(en) einer Klasse
Habe einen Ball
Delphi-Quellcode:
Und mehrere Steine der Klasse Bricks
TBall = class(TImageSprite)
public procedure DoMove(MoveCount: Integer); override; constructor Create(AParent: TSprite ); override; procedure DoCollision(Sprite: TSprite; var Done: Boolean); override; end;
Delphi-Quellcode:
Es werden mehrere Bricks erzeugt (40 Stück):
TBricks = class(TImageSprite)
public end; ... var Form1:TForm1; Brick: array[1..8,1..5] of TBricks;
Delphi-Quellcode:
Und ich möchte, dass bei einer Kollision des Balles mit einem bestimmten Brick bspw. Brick[3,5] genau was nur für 3,5 bestimmtes passiert.
for i... blabla for j.. to etc.
Brick[i,j]:= TBricks.Create(DXSpriteEngine1.Engine); with Brick[i,j] do begin Image := Form1.DXImageList1.Items[j+6]; Width := Image.Width; Height := Image.Height; Visible := True; x:= (i-1)*75; y:=50+(j-1)*15; end; Nun kenn ich aus Tutorials und aus der Praxis nur die Anwendung, dass man die Kollisions des Balls mit einer Komponente aus der gesamten Klasse überprüfen kann:
Delphi-Quellcode:
Wie kann ich es aber nur für Brick[x,y] machen anstatt für if sprite is TBricks?? Hoffe mir kann jemand weiterhelfen, danke schonmal!
procedure TBall.DoCollision(Sprite: TSprite; var Done: Boolean);
begin if sprite is TBricks then begin beep; dead; end; end; |
Re: DelphiX Kollision nur mit Bestandteil(en) einer Klasse
In deiner Brick-Klasse solltest du einfach ein oder mehrere Felder deklarieren, die deine Bricks eindeutig identifizieren (IDx und IDy beispielsweise).
Beispiel:
Delphi-Quellcode:
Man kann die Bricks auch Schachteln:
if sprite is TBricks then
if ((sprite as TBricks).IDx=3) and ((sprite as TBricks).IDy=4)then dead;
Delphi-Quellcode:
Letzteres kann aber etwas kompliziert werden.
var
FirstBrick:TBricks; FirstBrick:=TBricks.Create(Engine); with TBricks.Create(FirstBrick) do ... // und dann if sprite.Parent = FirstBrick then dead; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 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