Problem mit Z-Order Position von Bildern.[-ERLEDIGT-]
Übersicht

shootermakerBetreff: Problem mit Z-Order Position von Bildern.[-ERLEDIGT-] |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Hab ein Problem was ich alleine nicht lösen kann. Ich Lade die Map von oben nach unten, das hat den Grund damit die Gebäude(Tiles) die ich am oberen Rand der Karte platziere nicht ÜBER dem unteren erscheinen. die oberen Tiles haben alle die Kennung 0,die darunter die kennungen 1 - Maphöhe. 0 ist Layer 0 - wird also zuerst gezeichnet 1 ist layer 1 - er wird nach 0 gezeichnet und ist somit über 0 alle tiles die sich in reihe 1 befinden werden über 0 gezeichnet. Zur Veranschaulichung: 0000000000000000000000000000000 1111111111111111111111111111111 2222222222222222222222222222222 3333333333333333333333333333333 4444444444444444444444444444444 5555555555555555555555555555555 6666666666666666666666666666666 7777777777777777777777777777777 8888888888888888888888888888888 usw... Mit Gebäuden ist es nun kein Problem sie richtig zu platzieren. aber wie sieht es jetzt mit den Einheiten aus? Die Einheiten werden in einem Typ erstellt. ich lasse jetzt die Einheit z.b. vom oberen Rand zum unteren Rand maschieren. demnach müsste sich seine Layerposition (oder Z-Order wie es oft genannt wird.) verändern. Code: if All\Z-Order = 0 then DrawImage Swordman,All\X,All\Y,All\Frame if All\Z-Order = 1 then DrawImage Swordman,All\X,All\Y,All\Frame if All\Z-Order = 2 then DrawImage Swordman,All\X,All\Y,All\Frame Aber das tut er nicht. er müsste doch aber die Einheit immer wenn sie z.b. von der Reihe 0 zu Reihe 1 wechselt neu zeichnen... demnach ÜBER der Einheit die auf 0 steht... Hoffe ich hab es einigermaßen verständlich erklärt, wenn nicht einfach noch mal nachfragen. ![]() Vielen Dank im Voraus. |
||
- Zuletzt bearbeitet von shootermaker am Fr, Aug 07, 2009 13:48, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du das so machst, ist der Wert vom Z-Order gleichgültig - die Einheiten werden so oder so gezeichnet. Du musst erst alle Einheiten auf dem untersten Layer zeichnen, dann alle Einheiten des nächsten Layers und so fort. | ||
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) |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du prüfst einfach, auf welchem layer die Einheiten sich befinden (also auf welchen y tiles) . Das speicherst du in jedem einheiten type ab und malst sie dann. Werden die einheiten bewegt, speicherst du wieder die neue position. Das musst du aber nur bei Pixelbewegung der einheiten machen, aber wenn du sie eh von tile zu tile bewegst, nimmst du die einfach. Jetzt nur noch alle malen :
Code: [AUSKLAPPEN] For i = 0 to MapHeight-1
For e.einheit = Each einheit If e\y = i Or e\layer = i ;(Je nach dem) DrawImage einheit007,e\x,e\y EndIf EndIf Aber nicht vergessen, das nach dem malen der map auszuführen, sonst sind die figuren unter der map ![]() mfg Toeb |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
shootermaker |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo und viele Dank für eure Antworten! ![]() @ToeB Genau dieser Code hat mir gefehlt... funktioniert einwandfrei, Danke danke und danke. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group