DirectX är ett av de ledande grafikprogrammering programmeringsgränssnitt som används för spel, simuleringar och andra grafiska tillämpningar såsom medicinsk avbildning . Det är en Windows- bibliotek tillgängliga för användning i C + + , liksom alla . NET framework språk som C # eller VB.net . Det enda steg som krävs för att börja utnyttja den fulla kraften av en av de ledande grafik API: er i världen är att lägga till ett bibliotek referens till din . NET-projektet . Instruktioner
1
Högerklicka på projektets namn i navigeringsfönstret , och klicka på " Add Reference ". Lägg projektreferenser till Microsoft.DirectX.dll och Microsoft.DirectX.DirectDraw.dll
2
Kopiera och klistra in följande i toppen av din Main.vb fil : .
Import Microsoft.DirectXImports Microsoft.DirectX.DirectDraw Addera 3
på toppen av din Controller objekt , klistra in följande variabeldeklarationer :
Privat visning Som DevicePrivate front Som Surface = NothingPrivate tillbaka som Surface = NothingPrivate titel Som Surface = NothingPrivate text Som Surface = NothingPrivate klippet Som Clipper = NothingPrivate titlescreen As String = Application.StartupPath + " \\ title.bmp "
4
Klistra in följande kod på din klass nedan konstruktorn :
Private Sub InitDirectDraw ( ) "för att beskriva en yta
Dim Beskrivning som ny SurfaceDescription ( ) " Init Device
display = Ny enhet ( ) # Om DEBUG Thendisplay.SetCooperativeLevel ( Me , CooperativeLevelFlags.Normal ) # Else ' Ställ kooperativa Nivå och förälder ,
" setted till helskärm Exklusivt för formuläret ) katalog
display.SetCooperativeLevel ( Me , CooperativeLevelFlags.FullscreenExclusive ) " Ställ in upplösning och färgdjup
" används i helskärmsläge ( 640x480 , 16 bitars färg ) katalog
display.SetDisplayMode 640 ( , 480 , 16 , 0 , False ) # End If
'Ange attribut för den främre ytan
description.SurfaceCaps.PrimarySurface = Sant
# Om DEBUG Thenfront = ny yta ( beskrivning , display ) # Elsedescription.SurfaceCaps.Flip = Truedescription.SurfaceCaps.Complex = Sant
" Ställ Back Buffer räkna
description.BackBufferCount = 1
" Skapa ytan med specifed beskrivning och enhet ) katalog
front = ny yta ( beskrivning , display ) # End Ifdescription.Clear ( ) # Om DEBUG Thendescription.Width = front.SurfaceDescription.Widthdescription.Height = front.SurfaceDescription.Heightdescription.SurfaceCaps.OffScreenPlain = Trueback = ny yta ( beskrivning , visa ) # Else " en Caps är en uppsättning attribut som används av de flesta av DirectX komponenter
Dim caps som Nya SurfaceCaps ( ) " Ja, vi använder en bakre buffer
caps.BackBuffer = Sant
" Associera främre bufferten att backa buffert med specificerade lock
back = front.GetAttachedSurface ( caps ) # End Om
" Skapa Clipper
clip = Ny Clipper ( display ) '' ' Ställ regionen att denna form
clip.Window = Me ' Ange Clipper till den främre ytan
front . Clipper = clip
" Återställ beskrivningen
description.Clear ( ) ' Skapa titelskärmen titel
= ny yta ( titlescreen , beskrivning , display ) katalog
description.Clear ( ) 'Ange höjden och bredden på texten .
description.Width = 600description.Height = 16 ' OffScreenPlain innebär att denna yta
" är inte en front , tillbaka , alfa Surface .
description.SurfaceCaps.OffScreenPlain = Sant
"Skapa texten Surface text
= ny yta ( beskrivning , display ) " Ställ backgroup färg
text.ColorFill ( Color.Black ) Ställ i förgrunden färg på texten
text.ForeColor = Color.white ' Rita text till ytan för att coords ( 0,0 )
text.DrawText ( 0 , 0 , " Managned DirectX Tutorial 1 - Tryck på Enter eller Escape för att avsluta " , sant) End SubPrivate Sub Draw ( ) " Om den främre inte skapa, ignorera denna funktion
Om fronten är ingenting ThenReturnEnd Om
" Om blanketten minimeras , ignorera detta
funktion
Om Me.WindowState = FormWindowState.Minimized ThenReturnEnd IfTry ' Rita titeln på baksidan buffert med källa Kopiera BLIT
back.DrawFast ( 0 , 0 , titel , DrawFastFlags.Wait ) katalog
'rita texten även på baksidan buffert med källan kopia BLIT
back.DrawFast ( 10 , 10 , text , DrawFastFlags.Wait ) katalog
# Om DEBUG Then ' Oavgjort allt detta till den främre
front.Draw ( back , DrawFlags.Wait ) # Else ' gör en flip att överföra tillbaka buffert till fronten , snabbare
# End Iffront.Flip ( back , FlipFlags.Wait ) katalog
Catch generatedExceptionName som WasStillDrawingExceptionReturnCatch generatedExceptionName som SurfaceLostException " Om vi förlorat ytorna , återställa ytorna
RestoreSurfaces ( ) End sub TryEnd
Private Sub RestoreSurfaces () "för att beskriva en yta
Dim Beskrivning som ny SurfaceDescription ( ) katalog
" Restore al ytan associed med
enhetens
display.RestoreAllSurfaces () ' Redraw texten text.ColorFill
( Color.Black ) text.DrawText ( 0 , 0 , " Managned DirectX Tutorial 1 - Tryck Enter eller Escape för att avsluta " , Sant ) katalog
" för titelskärmen , vi behöver
' avyttra den först och sedan återskapa det
title.Dispose ( ) title = Nothingtitle = ny yta ( titlescreen , beskrivning , display ) ReturnEnd Sub
5
Kopiera och klistra in följande kod på din klasskonstruktorn :
InitializeComponent ( ) InitDirectDraw ( ) Me.Cursor.Dispose ( ) Me.Show ( ) Medan CreatedDraw ( ) Application.DoEvents ( ) End Medan
6
Tryck " F5 " för att köra programmet och se title.bmp som visas på skärmen .