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. |
|