hectic Moderator

Anmeldedatum: 28.07.2007 Beitr�ge: 30
|
Verfasst am: Sa, 28.7.07 18:03 Titel: [B3D] Draw3D V.2.12 |
|
|
Was ist die Draw3D ?
Draw3D.bb ist ein kleiner Befehlssatz der gewohnte 2D-Befehle in schneller 3D-Grafik darstellt und gewisse visuelle Vorteile (zB Alphatransparenz, Echtzeit Rotation, Echtzeit Skallierung) mitsich bringt. Dabei wird - sowei m�glich - alles als Singlesurface im Hintergrund abgearbeitet. Es k�nnen zudem eigene Bitmap-Schriftarten oder Images erstellt und geladen werden.
Download der Library gibt es hier:
http://www.hectic.de/data/Draw3D.V.2.11.rar
http://www.hectic.de/data/Draw3D.V.2.12.rar
edit: V.2.12 Probleme mit diversen Picked-Anendungen in eigenen Projekten behoben. Zudem ist als Button deklariertes Text3D oder DrawImage3D hiermit wesentlich schneller.
Beigelegte Beispielcodes
Draw3D example1, Native Testing.bb
Draw3D example2, Text3D demonstration.bb
Draw3D example3, Image3D demonstration.bb
Draw3D example4, Image3D demonstration.bb
Draw3D example5, Creating a simple menue.bb
Draw3D example6, Creating a simple menue.bb
Draw3D V.2.1 Befehlsliste
Clear3D()
Der wichtigste Befehl von allen! Mit diesen wird alles vorherige mit Draw3D gezeichnete gel�scht um wieder neu malen zu k�nnen. Am besten immer gleich nach RenderWorld rein stellen.
Origin3D( XGraphic%=*, YGraphics%=* )
Hier werden zwei Parameter erwartet, die die Wunschgr��e in X und Y angeben. Als Beispiel: Ich erstelle ein Men� oder sonstwas in 800x600 und der User m�chte aber in einer 1280er Aufl�sung arbeiten. Generell m�sste man nun selber alles skallieren und umrechnen oder dem User nur eine Aufl�sung zu Verf�gung stellen. Mit Origin3D() kann man nun seine eigene WunschX und WunschY einstellen, egal welche Aufl�sung per Graphics eingestellt ist. Auch sind verschiedene Formate m�glich zB 4:3, 16:9 etc...
XGraphic% = Wunsch-X-Bildschirmaufl�sung
YGraphic% = Wunsch-Y-Bildschirmaufl�sung
Wird dieser Befehl weg gelassen, so wird automatisch die Bildschirmaufl�sung genommen.
MouseX3D
Globale Variable hat den Wert der Draw3D-Maus-X-Koordinate. Update immer jeweils nach Clear3D().
MouseY3D
Globale Variable hat den Wert der Draw3D-Maus-Y-Koordinate. Update immer jeweils nach Clear3D().
Color3D( Red%, Green%, Blue%, Alpha#, Size# )
Setzt die Zeichenfarbe, Alpha und Strichst�rke aller Drawbefehle!
Red% = Rotanteil 0-255
Green% = Gr�nanteil 0-255
Blue% = Blauanteil 0-255
Alpha# = Alphawert 0-1
Size ist bei Plot3D, Line3D, Rect3D/Oval3D (mode=0), die Strichst�rke
Size ist bei DrawImage3D der Skallierungsfaktor (1=100%)
Size ist bei Text3D die Schrifth�he
ColorN3D( Red%, Green%, Blue%, Alpha#, Size# )
Setzt die Zeichenfarbe, Alpha und Strichst�rke nur f�r Plot3D, Line3D, Rect3D, Oval3D.
Das N kann man sich leicht f�r ''Native'' merken.
ColorT3D( Red%, Green%, Blue%, Alpha#, Size# )
Setzt die Zeichenfarbe, Alpha und Schrifth�he nur auf Text3D.
Das T kann man sich leicht f�r ''Text'' merken.
ColorG3D( Red%, Green%, Blue%, Alpha#, Size# )
Setzt die Zeichenfarbe, Alpha und Skallierungsfaktor nur auf DrawImage3D.
Das G kann man sich leicht f�r ''Graphic'' merken.
NativeInit3D( Mode%=3 )
Initialisiert die Nativen Drawbefehle f�r Plot3D, Line3D, Rect3D und Oval3D. Es kann also anhand der Initialisierungsreihenfolge gegen�ber LoadImage3D die Darstellungspriorit�t angegeben werden.
Mode% = Entspricht den CreateTexture Parameter [Modus].
Plot3D( XPos%, YPos% )
Setzt ein Punkt an X/Y -Position deren Gr��e vom Color(N)3D -Strichst�rke beeinflussbar ist.
Line3D( XPos1%, YPos1%, XPos2%, YPos2% )
Zeichnet eine Linie vom X1/Y1 -Startpunkt bis zum X2/Y2 -Zielpunkt. Die Liniendicke ist vom Color(N)3D -Strichst�rke beeinflussbar.
XPos1% = X-Startkoordinate
YPos1% = Y-Startkoordinate
XPos2% = X-Endkoordinate
YPos2% = Y-Endkoordinate
Rect3D( XCenter%, YCenter%, XSize%, YSize%, Mode% )
Zeichnet ein Rechteck deren - anders als im 2D-Befehl - Mittelpunkt und die X/Y -Ausbreitung angegeben wird.
XCenter% = X-Mitte
XCenter% = Y-Mitte
XSize% = X-Ausbreitung
XSize% = Y-Ausbreitung
Mode = 0 nur Rahmen (mit Strichst�rke aus Color(N)3D)
Mode = 1 Ausgef�llt
Oval3D( XCenter%, YCenter%, XSize%, YSize%, Mode% )
Zeichnet ein Oval deren - anders als im 2D-Befehl - Mittelpunkt und die X/Y -Ausbreitung angegeben wird.
XCenter% = X-Mitte
XCenter% = Y-Mitte
XSize% = X-Ausbreitung
XSize% = Y-Ausbreitung
Mode% = 0 nur Rahmen (mit Strichst�rke aus Color(N)3D)
Mode% = 1 Ausgef�llt
Text3D( Handle%, XPos%, YPos%, String$, XCenter%, Button% )
Schreibt beliebigen Text (Bitmapfont) auf dem Bildschirm.
Handle = Der Handle der beim laden des Bitmapfonts (LoadImage3d) angegeben wurde
XPos% = X-Ausrichtung
YPos% = Y-Mitte
String$ = Textinhalt der angezeigt werden soll
XCenter = 0 ist links ausgerichtet
XCenter = 1 ist mittig ausgerichtet
XCenter = 2 ist rechts ausgerichtet
Button = 1 macht aus dem String ein Button. Wird mit der Maus �ber den Text gefahren, so leuchtet dieser auf. Globale Variablen MouseOver3D, MouseDown3D und MouseHit3D k�nnen anschliessend weiter verarbeitet werden.
LoadImage3D( File$, Mode%, USize%=*, VSize%=* )
Mit diesem Befehl werden Schriftarten aber auch Images in den Grafikspeicher geladen.
File$ = Dateiname
Mode% = Wie auch die Modis bei LoadBrush auch
USize% = Die generelle X-Skallierung f�r UV-Mapping
VSize% = Die generelle Y-Skallierung f�r UV-Mapping
USize und VSize k�nnen einfach weggelassen werden (wird automatisch geregelt)
FreeImage3D( Handle% )
L�scht Bilder die zuvor mit LoadImage3D geladen wurden aus dem Speicher. Leider funktioniert diese Funktion bei mir nicht. Daher bitte ich jeden, der mir weitere Informationen geben kann, wie man es eventuell doch zum laufen bringen k�nnte!!!
Handle% = Der Handle der beim laden des Images (LoadImage3d) angegeben wurde
DrawImage3D( Handle%, XCenter#, YCenter#, UPos#, VPos#, USize#, VSize#, Button%=0, Rotation#=0 )
Mit DrawImage3D lassen sich Bildausschnitte einzeichnen.
Handle% = Der Handle der beim laden des Images (LoadImage3d) angegeben wurde
XCenter% = X-Mitte
XCenter% = Y-Mitte
UPos# = Die X-Startkoordinate im Bild selber
VPos# = Die Y-Startkoordiante im Bild selber
USize# = Die Breite der Bildausschnittes im Bild selber
VSize# = Die H�he der Bildausschnittes im Bild selber
Button% = 1 macht aus dem Image ein Button. Wird mit der Maus �ber den Image gefahren, so leuchtet dieser auf. Globale Variablen MouseOver3D, MouseDown3D und MouseHit3D k�nnen anschliessend weiter verarbeitet werden.
Rotation# = Die Rotationsposition des Images
MouseOver3D
Globale Variable ist 1, wenn die Maus �ber Text3D oder DrawImage3D ist und als Parameter ''Button=1'' angegeben wurde
MouseDown3D
Globale Variable hat den Wert der Maustaste(n), wenn die Maus �ber Text3D oder DrawImage3D gedr�ckt wird, und als Parameter ''Button=1''angegeben wurde
MouseHit3D
Globale Variable hat den Wert der Maustaste(n), wenn die Maus �ber Text3D oder DrawImage3D geklickt wurde, und als Parameter ''Button=1''angegeben wurde
Lizenz von Draw3D
Die Draw3D.bb und weitere dem Archiv beigelegte Dateien (au�er die ''sky402.png'' welche aber im neuem Archiv entfernt wurde) d�rfen frei verwendet werden. Es m�ssen keine ''Credits'' oder sonstige Eintr�ge in euren Projekten auf mich verweisen. Tut ihr dies trotzdem, so freue ich mich nat�rlich wenn auf www.hectic.de verwiesen w�rde. Benutzung der Draw3D.bb auf eigene Gefahr.
Viel Spa� mit der Draw3D w�nscht hectic.
Nehme gerne Anregungen und Problemmeldungen bez�glich der Draw3D an, um die Draw3D stetig zu verbessern. |
|