DirectX ist einer der führenden Grafik-Programmierung APIs für Spiele , Simulationen und andere Grafik-Anwendungen wie medizinische Bildgebung verwendet . Es ist ein Windows -only -Bibliothek für den Einsatz in C + +, sowie jede . NET Framework-Sprache wie C # oder VB.net . Der einzige Schritt notwendig, beginnen die Nutzung der vollen Leistung von einer der führenden Grafik-APIs in der Welt ist , um eine Bibliothek Verweis auf Ihre . Net Projekt hinzuzufügen. Anleitung
1
der rechten Maustaste auf den Namen des Projekts in der Navigationsleiste , und klicken Sie auf "Add Reference." In Projekt Verweise auf Microsoft.DirectX.dll und Microsoft.DirectX.DirectDraw.dll
2
Kopieren Sie den folgenden in der Spitze der Main.vb Datei : .
Importe Microsoft.DirectXImports Microsoft.DirectX.DirectDraw
3
an der Spitze des Controller-Objekt , fügen Sie die folgenden Variablendeklarationen :
Privat Display Wie DevicePrivate vorderen Als Oberfläche = NothingPrivate zurück Als Oberfläche = NothingPrivate Titel als Fläche = NothingPrivate Text als Fläche = NothingPrivate Clip Wie Clipper = NothingPrivate titlescreen As String = Application.StartupPath + "\\ title.bmp "
4
den folgenden Code in Ihre Einfügen Klasse unterhalb der Baumeister:
private Sub InitDirectDraw () ' verwendet, um eine Oberfläche
Dim Beschreibung As New SurfaceDescription () beschreiben ' Init den Gerätestatus
display = New Device ( ) # Wenn DEBUG Thendisplay.SetCooperativeLevel (Me, CooperativeLevelFlags.Normal ) # Else 'Den Cooperative Niveau und Eltern ,
' to Full Screen Exclusive zum Formular Setted )
display.SetCooperativeLevel ( Me, CooperativeLevelFlags.FullscreenExclusive ) " Stellen Sie die Auflösung und Farbtiefe
' im Vollbildmodus verwendet ( 640x480, 16 bit Farbtiefe)
display.SetDisplayMode (640 , 480, 16 , 0, True ) # End If
' die Attribute für die vordere Oberfläche
definieren description.SurfaceCaps.PrimarySurface = True
# Wenn DEBUG Thenfront = New Oberfläche (Beschreibung, Anzeige) # Elsedescription.SurfaceCaps.Flip = Truedescription.SurfaceCaps.Complex = True
'Setzen Sie die Zurück- Buffer Anzahl
description.BackBufferCount = 1
' die Oberfläche mit specifed Beschreibung erstellen und Gerät)
vorne = New Oberfläche (Beschreibung, Anzeige) # End Ifdescription.Clear () # Wenn DEBUG Thendescription.Width = front.SurfaceDescription.Widthdescription.Height = front.SurfaceDescription.Heightdescription.SurfaceCaps.OffScreenPlain = Trueback = Neue Fläche ( Beschreibung , Anzeigen) # Else 'A Caps ist ein Satz von Attributen von den meisten DirectX-Komponenten
Dim Kappen verwendet As New SurfaceCaps ()' Ja, über wir eine back-Puffer
werden < p> caps.BackBuffer = True
' Ordnen Sie den vorderen Puffer Puffer mit bestimmten caps
back = front.GetAttachedSurface ( caps) # End zurück
' Erstellen der Clipper
clip = New Clipper ( Anzeige) '' ' Legen Sie die Region auf diese Form
clip.Window = Me ' den Haarschneider für die vordere Oberfläche
Satz vorne . Clipper = Clip
'Reset die Beschreibung
description.Clear ()' erstellen der Titel-Bildschirm
title = New Fläche ( titlescreen , Beschreibung, Anzeige)
< p> description.Clear () ' Stellen Sie die Höhe und Breite des Textes.
description.Width = 600description.Height = 16' OffScreenPlain bedeutet, dass diese Oberfläche
' nicht ist eine Vorderansicht , zurück , alpha Surface.
description.SurfaceCaps.OffScreenPlain = True
'Erstellen des Textes Oberfläche
text = New Oberfläche (Beschreibung, Anzeige) ' Den backgroup Farbe
text.ColorFill ( Color.Black ) 'Den Vordergrund Farbe des Textes
text.ForeColor = Color.White " zeichnen Sie den Text auf der Oberfläche, um Koordinaten (0,0)
text.DrawText (0 , 0, " Managned DirectX Tutorial 1 - Drücken Sie die Eingabetaste oder Esc zu beenden ", True ) End Sub SubPrivate Draw ( ) ' Wenn die Front nicht schaffen wird , ignorieren Sie diese Funktion
< p> Wenn vorne Is Nothing ThenReturnEnd Wenn
' Wenn das Formular minimiert wird, ignorieren Sie diese Funktion
Wenn Me.WindowState = FormWindowState.Minimized ThenReturnEnd IfTry " zeichnen Sie den Titel auf die back-Puffer mit Quelle Kopie blit
back.DrawFast (0, 0 , Titel, DrawFastFlags.Wait )
' den Text auch ziehen, um die back-Puffer mit Quellkopie blit
back.DrawFast (10, 10 , text, DrawFastFlags.Wait )
# Wenn DEBUG Then ' Draw all dies an die Front
front.Draw (Rücken, DrawFlags.Wait ) # Else' Doing eine Flip zurück übertragen Puffer nach vorne, schneller
# End Iffront.Flip (Rücken, FlipFlags.Wait )
Fangen generatedExceptionName Wie WasStillDrawingExceptionReturnCatch generatedExceptionName Wie SurfaceLostException "Wenn wir die Flächen verloren , Wiederherstellung der Oberflächen
RestoreSurfaces () End Sub