Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra 2D] 3 Probleme (AdSetup Fehler u. Kollisionen) (https://www.delphipraxis.net/148735-%5Bandorra-2d%5D-3-probleme-adsetup-fehler-u-kollisionen.html)

darknighte 7. Mär 2010 13:56


[Andorra 2D] 3 Probleme (AdSetup Fehler u. Kollisionen)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Delphigemeinde,
ich beschäftige mich derzeit mit einem Freund mit Andorra 2D für ein Schulprojekt (hier erstmal ein großes Lob an Igel457, für die tolle, recht einfach verständliche Engine). Nachdem wir uns jetzt seit einigen Monaten eingearbeitet und nun voll in der Programmierung von einem kleinen RPG stecken, sind einige Probleme aufgetaucht, die wir nicht mehr durch googlen analysieren und beheben können. Wir arbeiten übrigens beide mit Delphi 2009.

Problem 1:
Es gibt bei unserem Spiel immer eine Exception, wenn am Anfang des AdSetups auf "Cancel" gedrückt wird. Das tritt nicht nur bei unserem Projekt, sondern auch bei der Wormhunter Demo auf, an der wir uns insgesamt auch sehr stark orientiert haben.
Bei einem Klick auf Cancel wird die Form danach angezeigt. Wenn diese Form nun durch einen Klick auf das X geschlossen werden soll, gibt es eine eine ungültige Zeigeroperation (EInvaildPointer mit Meldung "Ungültige Zeigeroperation").
Durch Debuggen habe ich herausgefunden, dass das Problem beim AdDraw.Free liegt (die Methoden zum Freigeben haben wir von der Wormhunter Demo direkt in unser Spiel übernommen). Wir haben nur leider keine Ahung wie wir das Problem beheben können.
(Btw: Bei einigen anderen Demos, z.B. Textdemo, Spiral, SimpleText treten beim "Cancel" memory leaks auf)


Problem 2:
Unsere nächste Frage/Problem bezieht sich auf Collision Funktion von TSprite (TSprite.Collision). Wir bekommen, trotz Kollision, die zu 100%iger Wahrscheinlichkeit auftritt, nie einen Rückgabewert größer als 0 (siehe dazu http://andorra.sourceforge.net/docs/...html#Collision). Die Kollisionen finden aber auf jeden Fall statt, denn es wird DoCollision erfolgreich aufgerufen.
Woran könnte es liegen ?

Problem 3:
Wir haben das Problem liebevoll Z-Problem getauft, denn es geht wie der Name schon sagt um das "Z" der Sprites. D.h., ob ein Sprite(z.B. ein Haus) über der Spielfigur gezeichnet wird oder darunter.
Es ist etwas schwierig zu erklären, daher werde ich ganz einfach ein paar Bilder mit anhängen, die unser Problem anschaulich darstellen.
Die Zs der Sprites müssten halt irgendwie dynamisch sein (relativ zum Standpunkt der Spielfigur und bei jedem Sprite anders), allerdings fehlt uns da bisher die richtig tolle Promblemlösung, um das umzusetzen. Daher würden wir uns sehr über Ideen freuen ;)


Auch schon einmal ein Danke im Voraus an alle die sich den Text hier überhaupt antun/angetan haben und sich mit unseren Problemen beschäftigen. Wenn bestimmte Quelltextteile gewünscht werden, einfach danach fragen.
darknighte


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