Hi!
Das wird die Grundlage für mein Inventar und ich dachte mir, ich teste es mal mit einem simplen 3D Objekt im Viewport. Nur daß nichts angezeigt wird und ich inzwischen keinen Fehler mehr finden kann...
Kann mir wer helfen?
GLG
W.
PS.: Der Code
LOADSPRITE "Inventar.png", 1
LOADSPRITE "Maus.png", 2
X_LOADOBJ "rumpf.ddd", 3
WHILE TRUE
Inventar(1)
View()
Maus()
SHOWSCREEN
WEND
FUNCTION Maus:
LOCAL mx, my, b1, b2
X_MAKE2D
MOUSESTATE mx, my, b1, b2
//ALPHAMODE 1
SPRITE 2, mx, my
//ALPHAMODE 0
ENDFUNCTION
FUNCTION View:
VIEWPORT 600, 100, 400, 600
//X_MAKE2D
FILLRECT 0,0, 400, 600, RGB (0, 0, 0)
X_MAKE3D 1, 1000, 45
X_CAMERA 0, -500, 0, 0, 0, 0
X_SETTEXTURE 1, 1
X_DRAWOBJ 3, 0
X_DRAWAXES 0,0,0
VIEWPORT 0, 0, 0, 0
ENDFUNCTION
FUNCTION Inventar: index
LOCAL Inv_back_x, Inv_back_y
X_MAKE2D
FOR Inv_back_y = 0 TO 2
FOR Inv_back_x = 0 TO 3
SPRITE index, 0 + (Inv_back_x * 256), 0 + (Inv_back_y * 256)
NEXT
NEXT
ENDFUNCTION
Hi
Ich weiß jetzt nicht ob ich dir richtig helfen kann. Hab mit Viewport noch nicht
viel gemacht. Mußte es noch ausprobieren.:D
Und es ist schon spät und ich bin gezeichnet von WoW (Schöne Grüße an Vampire).;)
Schieb mal die Kamera etwas zur seite
X_CAMERA 200, -500, 0, 0, 0, 0
Ich geh von einer Auflösung von 1024*768 Pixeln aus.
Weil bei 640*480 liegt Viewport bei den Daten ja am Rand.:D
Schau mal ob's geht
Cheers
Du holst Di Mauskoordinaten mit MOUSESTATE. Die sind relativ zum Fenster, also linke obere Ecke=0,0.
Dann verschiebst Du den Viewport nach: 600,100,w,h
Damit ist der Pixel (600,100) auf dem Fenster jetzt mit SETPIXEL 0,0,c zu erreichen.
Der Viewport ist quasi ein "Fenster im Fenster".
Hi!
Das mit Viewport ist mir klar...
Und danke! Es war scheinbar wirklich die X - Koordinate. Habe 2 Lösungen gefunden:
X_CAMERA 1, -150, 0, 0, 0, 0
und
X_CAMERAUP 1, 0, 0
X_CAMERA 0, -150, 0, 0, 0, 0
Werde die 2. Lösung benutzen. Sieht eleganter aus! =)
Und danke für die Hilfe!!!
GLG
W.