2D Koordinaten eines Entity
Übersicht

![]() |
EingeproggtBetreff: 2D Koordinaten eines Entity |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich spiel mich grad ein bisschen mit 3D und hab, wie jeder Anfänger gleich mal eine dumme Frage:
Wie kann ich ermitteln, auf welchen 2D-Koordinaten ein Objekt (Entity) grad ist, IN PIXELN? Das brauch ich für meine "spezielle" Kollissionsabfrage. Und bevor das jemand sagt: Ich kenne EntityCollide, brauchs aber so. Danke schonmal. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Viele Leute die von 2D auf 3D umsteigen, wollen ihre alten Programmteile weiter benutzen, obwohl es in 3D dafür wesentlich elegantere Methoden gibt. Aber denoch. Wenn sich alles in einer 2D-Ebene abspielt, aber alles in 3D dargestellt wird, so kannst du die Kamera um halbe Bildschirmpixelbreite nach hinten ziehen. Dann hast du in der Ebene Z=0 eine 1:1 -Skallierung bei der Bewegug aller Objekte. Koordinatenursprung ist allerdings dann in der Mitte und die Y-Achse ist gespiegelt gegenüber 2D-befehlen. Dieses kann man kompensieren wenn man die kamera in der X-Achse um 180° dreht und entsprechend in der X- und Y-Achse verschiebt, was aber nicht zu empfehlen ist.^^ Ansosten gibt es keine 2D-Koordinaten im 3D-Raum, weil anhand dieser man nicht feststellen kann, wie tief ein Objekt ist und somit die X/Y-Skallierung nicht mit berücksichtigt werden kann. Dacher bittet sich an, es in einer 2D-0-Ebene zu programmieren mit entsprechender Kameraeinstellung.
Vielleicht hilft dir aber auch einfach nur ql:CameraPick |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
CameraProject
lalalala |
||
vertex.dreamfall.at | GitHub |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke an beide, besonders Vertex, da mir die Funktion mehr geholfen hat.
EDIT: Und weil sich schon wieder eine Frage aufgetan hat: Kann man Sprites mit einer anderen Farbe als schwarz maksen? (man kommt so schwer von den 2D-Angewohnheiten weg ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sprite=LOADSPRITE (Datei [,Modus] [,Parent])
Hier kurze Beschreibung: [1] Color Map = Die Textur wird so eingezeichnet wie man die sieht [2] Alpha Map = Die Textur benutzt Alpha Map für Transparenz. Wenn Alpha Map nicht vorhanden ist, dann erscheinen dunkle Stellen transparenter. [4] Masked = Schwarze Flächen werden nicht eingezeichnet. [8] Mipmapped = für weite Entfernungen wird eine Textur mit weniger Details benutzt. [16] Clamp U = Textur-Koordinate U wird fixiert. [32] Clamp V = Textur-Koordinate V wird fixiert. [64] Spherical Reflection Map = Reflektionseffekt [128] Cubic Environment Mapping = Echtzeitreflektion [256] Speichert Textur in VRAM = schneller [512] Erstellt HighColor-Textur. So kann die Textur auch bei 16-Bit Farbtiefe weiterhin Alpha-Informationen enthalten. Wenn du jetzt also LoadSprite "Blablub.jpg",1 machst dann wird Sprite so gezeichnet wie man ihn sieht^^ |
||
flashmaxel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist mir nicht bekannt. Aber du könntes das Sprite per CreateSprite() erstellen, eine Textur laden, die dann masken und auf das Sprite legen.
Textur masken: https://www.blitzforum.de/foru...asktexture |
||
Real C programmers never die; they cast to void. |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das geht auch einfach so:
- Textur besitzen, mit Farbe die gemasked werden soll - in GIMP (oder ein anderes gutes Grafikprogramm) öffnen - Farbe, die unsichtbar werden soll, durch Transparenz ersetzen - als png speichern - Sprite=LOADSPRITE ("XYZ.png" ,2 [,Parent]) ^^ |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group