Objekte von hinten nach vorne zeichnen (2D)
Übersicht

![]() |
EntenfelsBetreff: Objekte von hinten nach vorne zeichnen (2D) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Ich habe folgendes Problem ![]() Ich habe ein Type mit Personen mit den Feldern x und y. Diese Personen bewegen sich jedoch frei im Raum und stehen voreinander rum, etc. … Wie kann ich diese Elemente nun so sortieren, dass ich sie nach y gestaffelt auf den Bildschirm male? Also ich meine, so dass die Personen vorne im Bild die hinteren überlappen ![]() Vielen Dank im Voraus für die Antwort! Grüße Entenfels |
||
![]() |
Skabus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst die die am weitesten hinten sind zuerst zeichnen und die die am weitesten vorn zuletzt.
Am einfachsten ginge das indem du alle Y-Werte aller Personen aufnimmst(z.B. per Array) und sortierst diese dann, dann lässt du in deiner Anzeigeroutine dementsprechend die Person an der Stelle anzeigen, die der Sortierreihenfolge entspricht.... MfG Ska |
||
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat
aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit! Ein SNES-RPG mit Handels- und Wirtschaftselemente. Infos?Hier: http://www.blitzforum.de/worklogs/234/ Besucht meine Seite: www.seelenfriedhof.de.vu |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] For Y=1 to GraphicsHeight() ;Vorher am besten in einer Variable speichern
For P.Person=each Person if P\y=Y then DrawImage Person,P\x,P\y,0 Next Next PS: Ist natürlich nicht der intelligenteste weg, und ein sehr Rechenintensiver, aber ein einfacher ^^ |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Entenfels |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank @Skabus+Tankbuster! ![]() ![]() ![]() Aber meine Frage ist: Gibt es noch einen schnelleren Weg oder einen, der nicht jedes Frame von ganz vorne gestartet werden muss? Trotzdem vielen Dank für die Antworten. Sie haben mich auf jeden Fall weitergebracht! *jubel* Gruß Entenfels |
||
Die Details sind zu 94 Prozent zutreffend, bei sechs Prozent unvermeidbarer Extrapolation.
-Artemis Fowl von Eoin Colfer |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du sortierst alle mit einem BubbleSort Algo o.ä
Wenn sich nun ein Objekt bewegt (oder alle 100 ms) wird das ganze wiederholt Sollte nicht so sehr Performance fressend sein ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Skabus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Entenfels hat Folgendes geschrieben: Vielen Dank @Skabus+Tankbuster!
![]() ![]() ![]() Aber meine Frage ist: Gibt es noch einen schnelleren Weg oder einen, der nicht jedes Frame von ganz vorne gestartet werden muss? Trotzdem vielen Dank für die Antworten. Sie haben mich auf jeden Fall weitergebracht! *jubel* Gruß Entenfels Es wird kaum nen schnelleren Weg geben... Du wirst ja sicher pro Anzeigezyklus alle deine Personen zeichnen, dann wird dir nix anderes übrig bleiben als sie zu sortieren und dann in sortierter Reihenfolge anzuzeigen... Ich denke mal da wird kaum nen schnelleren Weg geben. Ist auch nicht kompliziert denke ich.... Freut mich dass ich helfen konnte ![]() MfG Ska |
||
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat
aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit! Ein SNES-RPG mit Handels- und Wirtschaftselemente. Infos?Hier: http://www.blitzforum.de/worklogs/234/ Besucht meine Seite: www.seelenfriedhof.de.vu |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
sicher geht es schneller:
du erstellst deine player gleich an der richtigen position in der liste, mittels insert, after, before, last und first immer wenn du ein neues objekt erstellst musst du umsortieren und immer wenn du eins bewegst musst du gucken ob die position nichmehr passt und es solange nach vorne/hinten schieben bis es wieder passt das ganze braucht kaum rechenleistung, da in eine sortierte menge einfügen viel schneller geht als sortieren |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group