Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [DelphiX] StrechDraw und Kollisionen (https://www.delphipraxis.net/28378-%5Bdelphix%5D-strechdraw-und-kollisionen.html)

Flogo 24. Aug 2004 03:17


[DelphiX] StrechDraw und Kollisionen
 
Tach zusammen. Ich habe mal wieder eine DelphiX-Frage:

Ich habe versucht bei ImageSprites mit Image.StrechDraw() in einem 2D Spiel einen 3D Effekt zu erzielen. Die Figuren werden abhängig von ihrem z-Wert größer oder kleiner dargestellt.
Ein Beispiel dafür gibts hier: http://www.cerebral-bicycle.co.uk/viewdoc.asp?doc=235

Leider stimmen jetzt die Kollisionen mit bewegten Objekten nicht mehr :-( Die werden nämlich immer noch mit dem Orginalbild überprüft und nicht mit dem Skallierten. Das sehe ich im Prinzip ja auch ein, da ja nur die Darstellung geändert wird und sich das Sprite im Grunde nicht ändert.
Ich hoffe irgendjemand hatte das gleich Problem schon mal und hat es irgendwie so gelöst, dass sowohl die Kollisionen als auch die Z-Achse funktionieren.

Vielen Dank schon mal für alle Tipps und Anregungen

Thebe 24. Aug 2004 05:18

Re: [DelphiX] StrechDraw und Kollisionen
 
DelphiX ist von den Kollisionen nur für pures 2D ausgelegt, wenn Du etwas anderes haben willst (z.b. dein gefaktes 3D) dann musst Du dich eben selbst um die Kollision der Objekte kümmern.

Flogo 25. Aug 2004 12:31

Re: [DelphiX] StrechDraw und Kollisionen
 
Schade...

Naja ich habe einen WorkAround gefunden.
Für alle die vor dem gleichen Problem stehen und sich wie ich nicht an eine eigene Kollisionsabfrage trauen:
Wenn man nicht, wie in dem Beispiel, nur die Größe ändert in der das Sprite dargestellt wird, sondern auch Height und Width des Sprites angleicht werden die Kollisionen zwar nicht perfekt, aber immerhin noch besser als ohne Pixelcheck.

Achtung:
- Trotzdem StretchDraw() verwenden sonst wird ein Teil des Bildes abgeschnitten.
- Image.Width/Height zum ausrechnen der neuen Breite/Höhe benutzen
- Wenn (zB bei der Animation von Spielfiguren) die untere Mitte des Sprites als Ursprung gesehen werden soll, müssen die X,Y-Koordinaten bei jedem Zeichnen neu ausgerechnet werden


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 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