2D Bilder - Zeichenreihenfolge
Übersicht

SilvioBetreff: 2D Bilder - Zeichenreihenfolge |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn sich 2D Bilder überschneiden, dann wird ja das Bild sichtbar sein, das als letztes gezeichnet wurde. Wenn jetzt z.B. 2 Figuren aneinander vorbeilaufen, dann muss man ja darauf achten, wer jetzt wen überlappt. Wir handhabt ihr sowas? Ich will keinen Code. Eher eine grobe Beschreibung, wie man so ein Problem löst. Ich hab es eigentlich schon selbst gelöst, aber es kommt mir als Anfänger so vor, als wäre das zu umständlich. Ich sage einfach, dass eine Figur hinter einer anderen steht, sobald die Pixel am Fuß weiter oben, also einen kleineren Y-Wert haben, als die der anderen Figur. Ist das okay so, oder macht man das anders? | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das geht so absolut in Ordnung, solange es für dich und deinen Anwendungszweck funktioniert ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So machen es auch die alten Adventure Games ala SCI etc. | ||
Silvio |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Als ich diesen Thread eröffnet hab, kam mir meine Lösung zum Problem so amateurhaft vor, aber ist ja eigentlich klar, dass man das so macht. Hat sich zu dem Zeitpunkt so angefühlt, als würde ich ein Bild innerhalb ner Schleife immer wieder laden oder nen ähnlichen Anfängerfehler ![]() naja mittlerweile hat sich mein Problem zu dem Thema verändert. Wenn ich 2 Bilder bzw. Spielfiguren habe, dann ist es noch relativ einfach mit dem Zeichnen, aber es ist ja normal, dass etliche Spielfiguren sich auf dem Feld bewegen. Also habe ich nun beliebig viele Figuren, die durch types beschrieben sind. Ich kann die einzelnen Koordinaten der Bilder mit einander vergleichen, aber wie kann ich eine einfache Zeichenreihenfolge erstellen? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du eine For![]() ![]() ![]() ![]() ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Silvio |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aha, diese Dinger also, an die ich mich bisher nie rangetraut hab ![]() ist der Aufwand, der dabei bei jedem Frame gemacht wird auch zu vernachlässigen? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das kommt auf den Sortieralgorithmus, die Anzahl der Objekte und die CPU an.
Ich würd's möglichst nicht jeden Frame machen, sondern den Aufwand verteilen. Da musst du mal einen Benchmark machen, wie lange es im Mittel / Schlimmstenfalls dauert. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist die Liste einmal nach y-Koordinate sortiert ist der Aufwand später vernachlässigbar wenn Du jedes Objekt bei seiner Bewegung rasch neu einordnest - hier muss ja idR keine komplette Sortierung mehr laufen da es ja seinen Platz wahrscheinlich nicht viel in der Liste verändern wird, daher kann beim ersten passenden Ergebnis abgebrochen werden wenn man von aktueller Position Richtung neuer Position durch die Liste iteriert. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Silvio |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jetzt muss ich aber was einfaches fragen:
wie verschiebt man Objekte in der Reihenfolge? es gibt ja die Befehle After und so weiter, aber mit denen bestimmt man ja welches Objekt angesprochen werden soll. Muss man manuell die Werte von den Types austauschen? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie gesagt: Insert![]() Beispiel: BlitzBasic: [AUSKLAPPEN] Type TTest |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Silvio |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
okay danke und wie komme ich an eine beliebige stell in der liste ? ich habe ja nur die befehle: first last before und after.
edit: okay selber draufgekommen. |
||
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Einfach mal in den Raum gestellt, würde ich sagen, mit einer Whileschleife, einer temporären variable (initialisiert auf First eines Types ![]() Also hopp, ich lerne auch =) Poste deinen weg! |
||
Silvio |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du kannst ja 2 objekte von einem type gleichzeitig laden, indem du die verschieden benennst und nachdem du sie verglichen hast kannst du ja nach bedarf das eine vor das andere setzen oder wie du halt willst.
edit: puh ich habs endlich geschafft ![]() |
||
![]() |
Nova |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sortieren von 1000 Einträgen dauert eine Sekunde? Öhm, irgendwie recht lang, oder irre ich mich da?
Wenn du mal Zeit und Lust hast, kannst du deinen Code ja mal hier online stellen. Zum einen könnten wir dann noch Tipps geben, zum anderen würdest du anderen Leuten helfen, falls sie ein ähnliches Problem haben. ![]() |
||
AMD Athlon II 4x3,1GHz, 8GB Ram DDR3, ATI Radeon HD 6870, Win 7 64bit |
Silvio |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kann ich noch machen, aber jetzt hab ich ein neues Problem.
Jetzt werden alle Objekte von dem Type sortiert, das heißt die Figuren, die durch diesen Type beschrieben werden, überlappen sich nicht mehr. Der Hauptcharakter oder andere Objekte im Spiel werden aber durch andere Types usw. beschrieben. Wie kann ich nun deren Zeichenreihenfolge bestimmen? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am besten bekommen die Bilder einen Type, damit du die unabhängig vom Objekt darstellen kannst.
BlitzBasic: [AUSKLAPPEN] Type TImage |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Silvio |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aha ich dachte mir schon, dass es mit verschachteln klappt, aber hatte wiedermal keine Ahnung wie das geht.
edit: okay ich bin nun soweit, dass verschiedene Types ein "Image"- Type erstellen und diese Image-Types kann ich nun sortieren und anzeigen. Mein Problem ist nun, wie kann ich die Image-Types nun ansprechen? Die Situation ist die: Die Position von einem Spieler wird in seinem richtigen Objekt gespeichert und im Image-Type, welches diesen Spieler anzeigt. Wenn sich nun die Position ändern, dann kann ich sie ja einfach im richtigen Objekt ändern, aber wie komme ich an das Image-Type? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group