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.