AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DelphiX Kollision nur mit Bestandteil(en) einer Klasse
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiX Kollision nur mit Bestandteil(en) einer Klasse

Ein Thema von ghostdawg · begonnen am 8. Jan 2006 · letzter Beitrag vom 13. Jan 2006
Antwort Antwort
ghostdawg
(Gast)

n/a Beiträge
 
#1

DelphiX Kollision nur mit Bestandteil(en) einer Klasse

  Alt 8. Jan 2006, 17:11
Habe einen Ball
Delphi-Quellcode:
  TBall = class(TImageSprite)
    public
      procedure DoMove(MoveCount: Integer); override;
      constructor Create(AParent: TSprite ); override;
      procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
  end;
Und mehrere Steine der Klasse Bricks
Delphi-Quellcode:
  TBricks = class(TImageSprite)
    public

    end;

...

var
  Form1:TForm1;
  Brick: array[1..8,1..5] of TBricks;
Es werden mehrere Bricks erzeugt (40 Stück):
Delphi-Quellcode:
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;
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.

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:
procedure TBall.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
  if sprite is TBricks then
    begin
      beep;
      dead;
    end;
end;
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!
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#2

Re: DelphiX Kollision nur mit Bestandteil(en) einer Klasse

  Alt 13. Jan 2006, 11:11
In deiner Brick-Klasse solltest du einfach ein oder mehrere Felder deklarieren, die deine Bricks eindeutig identifizieren (IDx und IDy beispielsweise).

Beispiel:
Delphi-Quellcode:
if sprite is TBricks then
  if ((sprite as TBricks).IDx=3) and ((sprite as TBricks).IDy=4)then
    dead;
Man kann die Bricks auch Schachteln:
Delphi-Quellcode:
var
  FirstBrick:TBricks;

FirstBrick:=TBricks.Create(Engine);
with TBricks.Create(FirstBrick) do
...

// und dann
if sprite.Parent = FirstBrick then dead;
Letzteres kann aber etwas kompliziert werden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz