GraFX
enthaltene Module:
GraFX_000_MAIN
GraFX_001_GRAPHIC
GraFX_002_MATH
GraFX_003_SOUND
GraFX_004_INPUT
Editoren:
Ttf2bmp (zum
erstellen von Bimap-Fonts)
Beim Einbinden der Module in eigene Projekte
ist darauf zu achten, dass man auf die DirectX 7 for Visual Basic Type
Library verweist. Jedes Modul ist eigenständig, muss aber immer zusammen
mit dem Main-Modul in Projekte eingebunden werden.
Main-Modul
Mit dem Main-Modul erhält man Zugriff auf das DirectX-Objekt. Es weist lediglich zwei Funktionen auf:
Name: |
Beschreibung: |
Init_GraFX |
initialisiert die Engine |
Unload_GraFX |
fährt die Engine herunter |
Graphic-Modul
Mit dem Graphic-Modul erhält man Zugriff auf
das DirectDraw und D3D-Objekt, den Front- und BackBuffer und auf das
D3D-Device. Es weist folgende Funktionen auf (Die Funktionen für Effekte
sind hier nicht aufgelistet, sondern werden hier genauer erklärt):
Name: |
Beschreibung: |
Init_GraFX_GRAPHIC |
initialisiert DirectDraw und D3D
Parameter: Frm
(der Name des Formulars, auf dem DirectDraw initialisiert werden soll)
ResX, ResY (Auflösung), ColDepth (Farbtiefe),
DisplayMode (Vollbild oder Fenstermodus)
Anmerkungen:
D3D und die Effekte können nur im Vollbildmodus verwendet werden,
nicht aber im Fenstermodus. |
Unload_GraFX_GRAPHIC |
fährt DirectDraw und D3D herunter
Parameter:
Frm (Name des Formulars auf dem DirectDraw läuft) |
Load_Surf |
lädt ein Bild
Parameter:
Path (Pfad der zu ladenden Bitmap), Surf (eine Variable vom
Typ TSurf), KeyCol (optional, Farbe die Beim zeichnen der
Surface weggelassen werden soll), Width (optional, Breite des
Bildes), Height (optional, Höhe des Bildes)
Anmerkungen:
Die Funktion nimmt automatisch die Originalgröße des Bildes wenn die
Parameter Width und Height nicht angegeben werden! |
Unload_Surf |
löscht ein Bild aus dem
Speicher
Parameter:
Surf (zu löschendes Bild) |
SetRectFrame |
gibt ein Rectangle zurück
Parameter: Left,
Top (linker und oberer Rand des Rectangles), Height, Width
(Abstand des rechten bzw. unteren Randes vom linken bzw. oberen Rand) |
SetRect |
gibt ein Rectangle zurück
Parameter: Left,
Top, Right, Bottom (linker, oberer, rechter und unterer Rand des
Rectangles) |
Blit_Surf |
zeichnet ein Bild
Parameter: X, Y
(Koordinaten des Bildes auf dem BackBuffer), Surf (Variable vom
Typ TSurf) |
Blit_SurfSector |
zeichnet den Ausschnitt
eines Bildes
Paramter: X, Y
(Koordinaten des Bildes auf dem BackBuffer), Surf (Variable vom
Typ TSurf), Rectangle (Rectangle das den zu zeichnenden
Ausschnitt definiert) |
Init_Anim |
initialisiert eine
Animation
Parameter: Surf
(Bild das später animiert werden soll), Anim
(Animationsvariable), NumFrames (Anzahl der Bilder) |
SetAnimFrame |
setzt das aktuelle Bild
einer Animation
Parameter: Anim
(Animationsvariable), Frame (Nummer des Bildes) |
Proceed_Anim |
spielt eine Animation ab
Parameter: Anim
(Animationsvariable), Speed (Abspielgeschwindigkeit) |
Blit_Anim |
zeichnet eine Animation
Parameter: X, Y
(Position der Animation), Surf (Bild der Animation), Anim
(Animationsvariable) |
Load_Font |
lädt eine Bitmap-Schrift
Parameter:
DescPath (Pfad der Beschreibungsdatei), SurfPath (Pfad des
Bitmaps), Font (Schriftvariable vom Typ TFont), KeyCol,
Width, Height (optional, siehe Load_Surf)
Anmerkung: Die Funktion benutzt die binäre Schreibweise
der SchriftDateien. |
Unload_Font |
löscht eine Bitmap-Schrift
aus dem Speicher
Parameter: Font
(Schriftvariable) |
Blit_Text |
gibt Text aus
Parameter: X, Y
(Position), Text (zu zeichnender String), Font
(Bitmap-Schrift die benutzt werden soll) |
GetTextWidth |
liefert die Pixelbreite
eines Textes
Parameter: Text
(TextString), Font (Bitmap-Schrift) |
GetTextHeight |
liefert die Pixelhöhe eines
Textes
Parameter: Font
(Bitmap-Schrift) |
Blit_TextBlock |
zeichnet einen Text (mehrzeilig)
Parameter: X, Y
(Position), Width (Zeilenbreite), Text (TextString),
Font (Bitmap-Schrift), Alignment (optional, TextAusrichtung) |
Add_Msg |
fügt der
Nachrichtenschlange eine zeichenpositionsunabhängige Nachricht hinzu
Parameter: X, Y
(Position), Text (TextString) |
Blit_Msgs |
gibt alle
zeichenpositionsunabhängigen Nachrichten aus |
FillRect |
füllt einen Ausschnitt des
BackBuffers mit einer Farbe
Parameter:
Rectangle (Ausschnitt), Color (Farbe) |
Flip |
gibt den BackBuffer-Inhalt
auf dem FrontBuffer aus
Parameter: VSync
(optional, Bildschirmsynchronisation)
Anmerkungen:
Darf nur im Vollbildmodus verwendet werden. |
FlipToWnd |
gibt den BackBuffer-Inhalt
auf dem FrontBuffer aus
Parameter:
DestRect (ZielAusschnitt auf dem Formular), SrcRect
(Ausschnitt der gezeichnet werden soll)
Anmerkungen:
Darf nur im Fenstermodus verwendet werden. |
ScreenShot |
macht ein Bild vom
aktuellen Bildschirminhalt und speichert es ab
Parameter:
Path (Pfad in dem das Bild abgespeichert wird), PicBox
(eine PictureBox auf einer Form) |
SetCursorVisibility |
damit lässt sich der Cursor
an- und ausschalten
Parameter:
Visible (gibt an ob der Cursor an- oder ausgeschaltet werden soll) |
CRGB |
konvertiert eine RGB-Farbe
wahlweise in eine 16-oder 32-Bit-Farbe
Parameter: r, g,
b (Farbanteile), ColDepth (optional, Farbtiefe), Reverse
(optional, gibt die Anordnung der Farbanteile an: z.B. RGB oder BGR)
Anmerkung:
Reverse ist Standardmäßig auf True gesetzt. Das braucht man bspw. um
die Farbe anzugeben mit der der Backbuffer mittels FillRect gefüllt
werden soll. Um z.B. die ForeColor des Backbuffers zu bestimmen muss
Reverse auf False stehen. |
GetXRes |
gibt die X-Auflösung zurück |
GetYRes |
gibt die Y-Auflösung zurück |
GetColDepth |
gibt die Farbtiefe zurück |
GetFPS |
gibt die Bilder pro Sekunde
zurück |
AV |
gibt den Durchschnittswert
einer Zahl, abhängig von FPS zurück.
Parameter: Val
(Wert von dem man den Durchschnitt erhalten möchte)
Anmerkung:
Diese Funktion benötigt man um die Applikation gleich schnell auf
unterschiedlich schnellen PC's laufen zu lassen. |
Math-Modul
Im Math-Modul sind einige wichtige
mathematische Funktionen und Konstanten enthalten, die man zur
Spieleprogrammierung benötigt:
Init_GraFX_MATH |
initialisiert die
Math-Engine
|
PythA |
Pythagoras (Addition)
Parameter: a, b
(Länge der Katheten) |
PythS |
Pythagoras (Subraktion)
Parameter: a, b
(Länge der Katheten (oder Hypothenuse)) |
CQuadA |
Pythagoras ohne Wurzel
(Addition)
Parameter: a, b
(Länge der Katheten) |
CQuadS |
Pythagoras ohne Wurzel
(Subtraktion)
Parameter: a, b
(Länge der Katheten (oder Hypothenuse)) |
RectColl |
überprüft ob eine
Rectangle-Kollision stattfindet
Parameter: X1,
Y1, X2, Y2
(Position der Objekte), Width1, Height1, Width2, Height2 (Größe
der Objekte) |
IsInRect |
überprüft ob sich ein
Objekt in einem Rectangle befindet
Parameter:
Rectangle
(Rectangle), X, Y (Position des Objekts), Width, Height
(Größe des Objekts) |
RadiusColl |
prüft Kollision zweier
Kreise
Parameter: MidX1,
MidY1, MidX2, MidY2
(Mittelpunktkoordinaten der Kreise), r1, r2 (Radien der Kreise) |
SetEvent |
setzt einen ZeitEvent
Parameter:
TimeEvent
(EventVariable), StartDelay (nach welcher Zeit in ms der Event
ausgelöst werden soll), TimeOut (Wie lange der Event andauern
soll)
Anmerkungen: Wenn TimeOut 0 ist, dann dauert der Event
ewig an (wenn das StartDelay überwunden wurde). |
GetEventStatus |
liefert den Status eines
Events als Boolean
Parameter: TimeEvent (EventVariable),
GameSpeedFact (optional, wichtig für die Spielgeschwindigkeit:
damit kann das StartDelay und das TimeOut "gestretcht" werden) |
GetSecCount |
liefert einen
Sekundenzähler mit einer Genauigkeit von 4 Stellen nach dem Komma
|
Sound-Modul
Mit dem Sound-Modul erhält man Zugriff auf das DirectSound-Objekt.
Folgende Funktionen stehen hier zur Verfügung:
Init_GraFX_SOUND |
initialisiert die Sound-Engine
Parameter: Frm
(Name des Formulars auf dem DirectSound initialisiert werden soll),
SoundDistFact (Sound-Distanz-Faktor)
|
Unload_GraFX_SOUND |
fährt die Sound-Engine
herunter
Parameter: Frm
(Name des Formulars) |
Load_SBuf |
lädt einen Sound
Parameter: Path
(Pfad der .wav-Datei), SBuf (SoundVariable) |
Duplicate_SBuf |
dupliziert einen
bestehenden Sound
Parameter: SBuf
(zu duplizierender Sound), OriginalSBuf (OriginalSound) |
Unload_SBuf |
löscht einen Sound aus dem
Speicher
Parameter: SBuf
(SoundVariable) |
Init_SBuf |
initialisiert die
Eigenschaften eines Sounds
Parameter: SBuf
(Sound), Volume (optional, Lautstärke), Pan (optional,
Pan), SpeedFact (optional, Faktor mit dem die Frequenz
mulitpliziert wird, damit wird die Geschwindigkeit des Sounds
geregelt) |
Init_Stereo_SBuf |
initialisiert die
Eigenschaften eines StereoSounds
Parameter: SBuf
(Sound), SrcX, SrcY (Koordinaten des Sounds), ListenerX,
ListenerY (Koordinaten des Zuhörers), SpeedFact (optional,
Faktor mit dem die Frequenz mulitpliziert wird, damit wird die
Geschwindigkeit des Sounds geregelt) |
Play_SBuf |
spielt einen Sound ab
Parameter: SBuf
(Sound), LoopSBuf (optional, gibt an ob der Sound immer
wiederholt werden soll) |
Stop_SBuf |
stoppt einen Sound
Parameter: SBuf
(Sound) |
Reset_SBuf |
Sound wird "resetet"
Parameter: SBuf (Sound) |
SetSoundDistFactor |
setzt den Wert des
Sound-Distanz-Faktors
Parameter: Val
(neuer Wert)
Anmerkungen:
Der Sound-Distanz-Faktor gibt an, wie stark die Lautstärke eines
Stereo-Sounds bei Entfernung vom Zuhörer abnimmt.
|
GetSoundDistFactor |
liefert den aktuellen Wert
des Sound-Distanz-Faktors |
Input-Modul
Mit dem Input-Modul stehen folgende Funktionen zur Verfügung:
Init_GraFX_INPUT |
initialisiert die
Input-Engine |
Acquire_Input |
holt alle nötigen
Informationen über die Tastatur und die Maus, muss immer aufgerufen
werden, bevor man mit der Maus bzw. der Tastatur arbeitet, hier wird
bereits DoEvents ausgeführt |
GetMouseX |
liefert die X-Position des
Cursors |
GetMouseY |
liefert die Y-Position des
Cursors |
GetActKeyState |
gibt zurück ob eine Taste
gedrückts ist
Parameter: Key
(Name der Taste)
|
KeyDown |
Wie der KeyDown-Event in
einer Form. Hier trägt man dann ein was passieren soll oder ruft
andere Prozeduren oder Funktionen auf. |
KeyUp |
Wie der KeyUp-Event in
einer Form. Hier trägt man dann ein was passieren soll oder ruft
andere Prozeduren oder Funktionen auf. |
|