2D-Koordinaten in 3D-Koordinaten umwandeln.
Übersicht

![]() |
TankbusterBetreff: 2D-Koordinaten in 3D-Koordinaten umwandeln. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich brauche das ganze, um ein Fadenkreuz (Sprite) immer an der Mausposition anzeigen zu lassen.
Natürlich hatte ich erstmal die Pick-Befehle im Kopf, aber die kann ich nicht verwenden, da sie nicht flüssig verlaufen. Wenn ich z.B. die Camera z.B. über mein Terrain gleiten lasse, ruckelt das Fadenkreuz immer kurz. Deshalb hab ich mir einfach gedacht, dass ich das Fadenkreuz mal eben so an die Maus hefte. Da das ein 3D-Objekt ist, ist das aber ganzschön schwer, oder ich komm nur nicht hinter die Logik. Natürlich hab ich mich schon selber darüber schlau gemacht. Dabei bin ich auf ein Beispiel von Mr. Keks gestoßen, und ich habe daraus versucht es so zu lösen: Code: [AUSKLAPPEN] PositionEntity Fadenkreuz,cam_x,cam_y,cam_z
RotateEntity Fadenkreuz,EntityPitch(cam,1),EntityYaw(cam),EntityRoll(cam) MoveEntity Fadenkreuz,(mouse_x-GraphicsWidth()/2)*32,(-mouse_y+GraphicsHeight()/2)*32,32 cam_x/y/z sind die globale Position der Kamera. mouse_x/y die 2D-Koordinaten der Maus. Warum funktioniert es nicht? >.< Das Fadenkreuz schwirrt sinnlos irgedwo in der Gegend rum >.< PS: Die Draw3D kann ich dafür auch nicht verwenden, denn damit habe ich das Hud bemalt, und später die Hud-Kamera etwas schräg gestellt. Dann sieht alles toller aus, nur auf der schrägen Fläche kann ich das Fadenkreuz natürlich nicht anzeigen, da es dann immer etwas neben der wirklichen Mausposition erscheint. PS²:GraphicsWidth/Height wird natürlich wenn alles funktioniert durch eine Variable ersetzt *g* MFG: Tank |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuche es doch mal mit folgender Zeile
Code: [AUSKLAPPEN] MoveEntity Fadenkreuz,(mouse_x-GraphicsWidth()/2),(-mouse_y+GraphicsHeight()/2),GraphicsWidth()/2
Im übrigen würde ich GraphicsWidth()/2 in eine Variable speichern und das ständige aufrufen der Funktionen unterlassen. Das müsste dann etwas schneller sein. Edit1: Zitat: PS²:GraphicsWidth/Height wird natürlich wenn alles funktioniert durch eine Variable ersetzt *g*
OK, vergiß mein zweiten Vorschlag *lalala* |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe mir vor längerer Zeit was geschrieben, das mir bis heute dabei hilft:
Code: [AUSKLAPPEN] PositionEntity Entity, (X - Auflösung_horizontal / 2) / KameraZoom / (Auflösung_horizontal / 2), (Y - Auflösung_vertikal / 2) / -KameraZoom / (Auflösung_horizontal / 2), 1 Vorher vielleicht noch HandleSprite, Sprite, -1, 1. |
||
Starfare: Worklog, Website (download) |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow, danke an euch beide.
Ich denke das hier ist jetzt erledigt *g* |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group