![]() |
DelphiX - mehrere Sprites als Hürde
Hi,
wenn ich in DelphiX mehrere quadratische Steine (à la Bomberman) auf dem Spielfeld erstelle
Delphi-Quellcode:
und dann eine Collisionsabfrage von einem Computerspieler für diese Steine mache
for I := 1 to 300 do begin
with TStein.Create(DXSpriteEngine1.Engine) do begin x:=random(21)*30; y:=random(21)*30; Name := 'Stein'+inttostr(I); end; end;
Delphi-Quellcode:
(Direction ist für 1= links, 2= unten, 3= rechts, 4= oben)
procedure TCPU.DoCollision(Sprite: TSprite; var Done: Boolean);
var I: Integer; begin inherited DoCollision(Sprite, Done); if sprite is TStein then begin case Direction of 1: begin x := x + 1; Direction := 3; end; 2: begin y := y - 1; Direction := 4; end; 3: begin x := x - 1; Direction := 1; end; 4: begin y := y + 1; Direction := 2; end; end; Dann klappt das zwar bei den meisten Steinen, aber einige werden trotzdem ignoriert und der Computer läuft durch. Ich habe schon probiert, ob er die Stelle mit dem Case of überhaupt erreicht und das tut er auch, aber er geht einfach durch den Stein durch. Jmd ne Ahnung, warum einige Steine dann nicht mehr beachtet werden? |
Re: DelphiX - mehrere Sprites als Hürde
es könnte sein das nicht alle objekte von typ TStein ist.
oder du hast beim erstellen von sprits vergessen die größe anzugeben es gibt dort noch W und H*G* |
Re: DelphiX - mehrere Sprites als Hürde
Width und Height hatte ich angegeben, er hat ja auch immer nen Ton erzeugt bei ner Collision (windows.beep), hab das Problem jetzt so gelöst, dass er in der DoCollision nur eine Variable auf True setzt und dann schon sozusagen im Vorraus bei DoMove überprüft, ob er noch weitergehen darf.
Danke aber für die Bemühungen ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 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 by Thomas Breitkreuz