3D GUI mit Sprites
Übersicht

KyroMasterBetreff: 3D GUI mit Sprites |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich überlege mir ob ich mein Menüsystem und HUD mit 2D oder mit 3D über Sprites realisieren soll. Für die 3D Variante brauche ich jedoch noch ein paar Infos.
Wenn ich meine Menüelemente als Sprites lade, wo soll ich diese denn dann auf der Z-Achse positionieren.D.h. wenn ich meine Kamera auf 0,0,0 habe müssen die Sprites dann auf 0,0,1 sein oder wie?Oder ist das egal wenn ich den Z-Order auf -1 setze. Wenn ich ein Sprite dann genau so groß haben möchte wie der Bildschirm muss ich ihn ja auch entsprechend der Kamerasicht skalieren.Wie rechnet man das dann aus (mit Kamerawinkeln?). Danke für Eure Hilfe, ich bin aber nicht(!) an vorgefertigten bibliotheken interessiert, weil ich es einfach besser finde die Materie selbst zu verstehen 8) |
||
Vielen Dank für Eure Hilfe!!! |
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du musst das Sprite an die Position 0,0,graphicsWidth() setzen und das Sprite auf Breite in ixel und Höhe in Pixel skalieren.
Das wäre des 1. Schritt, die Positionierung an 2dX und 2dY hängt davon ab, wo der Mittelpunkt des Sprites liegt, musste dir dann selbst herleiten, ist ganz einfach ![]() |
||
KyroMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Edit: Hat sich erledigt, ich hab ein bisschen überlegt und es verstanden ![]() |
||
Vielen Dank für Eure Hilfe!!! |
KyroMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mir gerade ein kleines Testprogramm geschrieben:
; Sprite-Testprogramm Graphics3D 1024,768 SetBuffer BackBuffer() Global Camera = CreateCamera() CameraRange Camera,1,GraphicsWidth() Global Sprite = LoadSprite("sprite.bmp",1) If Sprite = 0 Then RuntimeError "Konnte Sprite nicht laden" PositionEntity Sprite,0,0,GraphicsWidth() ScaleEntity Sprite,1024,768,1 EntityOrder Sprite,-1 While Not KeyHit(1) UpdateWorld RenderWorld Flip Wend leider wird auf dem Bildschirm nichts angezeigt ![]() An was könnte das liegen? |
||
Vielen Dank für Eure Hilfe!!! |
![]() |
Thoem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil PositionEntity sprite,0,0,GraphicsWidth() das Sprite an die 3D-Position 0,0,768 positioniert. Probier mal Positionentity sprite,0,0,10, oder kleinere Werte.
Zitat: Du musst das Sprite an die Position 0,0,graphicsWidth() setzen und das Sprite auf Breite in ixel und Höhe in Pixel skalieren.
Diese Aussage ist totaler Quatsch... |
||
Thoem... |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Thoem hat Folgendes geschrieben: Zitat:
Du musst das Sprite an die Position 0,0,graphicsWidth() setzen und das Sprite auf Breite in ixel und Höhe in Pixel skalieren.
Diese Aussage ist totaler Quatsch... lol ? ... warum soll diese Aussage totaler Quatsch sein ?! Natürlich kann man sich auch andere Werte errechnen mit denen das klappt, aber so klappt das auf jedenfall auch! ![]() ![]() |
||
KyroMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok ich hab aus Versehen SlaceEntity mit ScaleSprite verwechselt.
Mittlerweise hab ich es verstanden, man kann ja jeden beliebigen Z-Wert setzen, muss das Sprite jedoch entsprechend dem Kamerawinkel und Seitenverhältnis der Auflösung skalieren. |
||
Vielen Dank für Eure Hilfe!!! |
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Thoem hat Folgendes geschrieben: Diese Aussage ist totaler Quatsch... lol ... kein kommentar PS: wichtig ist auch, dass wenn höhere auflösung als 800x600 verwendet werden, das Sprite außerhalb der CameraRange gesetzt werden kann! |
||
![]() |
Thoem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im Grunde, ist die Aussage
Zitat: Du musst das Sprite an die Position 0,0,graphicsWidth() setzen und das Sprite auf Breite in ixel und Höhe in Pixel skalieren.
ja korrekt. Aber es wird fälschlicherweise der Eindruck erweckt, das die Positionentity-Koordinaten irgendetwas mit 2D-Bildschirmkoordinaten zu tun haben. Welchen Grund sollte es geben, die Z-Position eines Sprites derartig weit in den Raum zu verlegen? Was ist, wenn die Bildschirmauflösung auf 1280x1024 Pixel gestellt wird?? Dann hängt das Sprite ziemlich weit von der Kamera entfernt im Raum herum, oder? Was ist nun weiter, wenn die Kamerareichweite z.B.nur 100 betragen soll? Schätze, dann gibt's bald neue Themen mit dem Titel: Mein Sprite ist nicht mehr zu sehen ![]() |
||
Thoem... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group