[Draw3D2] Bezug wie 2D? [GELÖST]

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

funkmaster5000

Betreff: [Draw3D2] Bezug wie 2D? [GELÖST]

BeitragSa, Jan 30, 2016 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß, dass das Thema mehrfach angesprochen wurde und ich habe mal eine geänderte Version entdeckt, aber ich finde sie nicht mehr. Im Moment benutze ich D3D mit Physik. Die Berechnungen der Physik beziehen sich allesamt auf 0,0 links oben. Das macht das ganze etwas aufwändig, wenn ich z.B. Sprites den Phsyikobjekten hinzufügen möchte. Ist dieses Feature vlt in der Ultimate Version vorgesehen?

Danke für die Rückmeldung.
  • Zuletzt bearbeitet von funkmaster5000 am Di, Feb 02, 2016 0:06, insgesamt einmal bearbeitet

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Jan 30, 2016 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist grundsätzlich nicht vorgesehen. Allerdings werde ich mal nachschauen, ob man es als CONST angeben könnte. wie der Bezug stattfinden soll.

Auch wenn ich es aus der Gewohnheit heraus verstehe, warum man den Bezug links oben haben möchte. Jedoch - meine persönliche Meinung - ist der Bezug zur Mitte für viele Sachen einfacher. Es gelten hier auch Ausnahmen. Das währen beispielsweise die Gestalltung einer GUI oder das Darstellen einer Tilemap. Hier ist der Eckbezug nach wie vor besser.

Aber mal angenommen die Möglichkeit besteht. Wo rum soll sich beispielsweise ein Bild drehen? Durch die Mitte des Bildes oder um die angegebene Position? Egal was man hier macht, beides ist im Grunde Quatsch. Beim ersteren kann man gar nichts vernünftiges damit machen, beim zweiten ist der eigentliche Bezugspunkt dahin. Vor allem dann, wenn das Bild nicht einmal quadratisch ist.

edit1:

Sofern es dir nur um die Ursprungskoordinate und deren Spiegelung der Y-Achse geht, kannst du auch folgenden Trick anwenden:

statt Code: [AUSKLAPPEN]
Local based%=LoadImage3D("ced_data/ced.png",2,2,0,-1)
Local gauss%=LoadImage3D("ced_data/gauss.png",2,2,0,-2)

machst du Code: [AUSKLAPPEN]
Local pivot%=CreatePivot3D(0,-GDrawXSize,+GDrawYSize,+GDrawXSize,180,0,0,1)

Local based%=GrabImage3D(LoadImage3D("ced.png",2,2,pivot,-1),0,0,1024,1024,1,-1)
Local gauss%=GrabImage3D(LoadImage3D("gauss.png",2,2,pivot,-2),0,0,64,64,1,-1)


Das pivot wird nach links oben verschoben und einmal über die 180° Drehung in der Y-Achse gespiegelt.

Nun steht zwar die ganze Welt die als Bezug den pivot nimmt über Kopft. Wenn man aber jetzt jedes geladene Bild über diesen pivot separat einmal wieder in dessen Y-Achse spiegelt, hast du einen Bezugspunkt oben/links und jedes Bild wird korrekt dargestellt. Das geht am besten über GramImage3D da hier auch die Neusetzung einer Skalierung möglich ist.
 

funkmaster5000

BeitragDi, Feb 02, 2016 0:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank, hat funktioniert.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group