DirectX er en av de ledende grafikk programmering APIer brukes til spill, simuleringer og andre grafiske programmer som medisinsk bildebehandling . Det er en Windows -only biblioteket tilgjengelig for bruk i C + + , så vel som noen. NET rammeverket språk som C # eller VB.net . Den eneste skritt for å begynne å utnytte den fulle kraften til en av de ledende grafikk-APIer i verden er å legge et bibliotek referanse til din . Netto prosjektet. Instruksjoner
en
Høyreklikk på prosjektnavnet i navigasjonsvinduet , og klikk " Add Reference ". Legg prosjekt referanser til Microsoft.DirectX.dll og Microsoft.DirectX.DirectDraw.dll
2
Kopier og lim inn følgende i toppen av Main.vb filen: .
Imports Microsoft.DirectXImports Microsoft.DirectX.DirectDraw
3
på toppen av Controller objekt, lim følgende variabeldeklarasjoner :
Private skjerm Som DevicePrivate foran Som Surface = NothingPrivate tilbake Som Surface = NothingPrivate tittelen Som Surface = NothingPrivate tekst Som Surface = NothingPrivate klipp Som Clipper = NothingPrivate titlescreen As String = Application.StartupPath + "\\ title.bmp "
4
Lim inn følgende kode inn i klasse under konstruktør : en
Private Sub InitDirectDraw () ' Brukes til å beskrive en Surface
Dim beskrivelse som ny SurfaceDescription ()' Init Device
display = New Device ( ) # Hvis DEBUG Thendisplay.SetCooperativeLevel (Me , CooperativeLevelFlags.Normal ) # Else ' Sett Cooperative nivå og foreldre , etter
' setted til Full Screen Exclusive til skjemaet )
display.SetCooperativeLevel ( Me, CooperativeLevelFlags.FullscreenExclusive ) ' Sett oppløsningen og fargedybden
' brukes i fullskjerm ( 640x480 , 16 bit farge)
display.SetDisplayMode ( 640 , 480 , 16, 0 , False ) # End If
' Definer attributtene for den fremre Surface
description.SurfaceCaps.PrimarySurface = sant
# Hvis DEBUG Thenfront = Ny Surface (beskrivelse, display) # Elsedescription.SurfaceCaps.Flip = Truedescription.SurfaceCaps.Complex = sant
' Still Back Buffer teller
description.BackBufferCount = 1
"Opprett the Surface med specifed beskrivelse og enhet)
foran = Ny Surface (beskrivelse , display ) # End Ifdescription.Clear ( ) # Hvis DEBUG Thendescription.Width = front.SurfaceDescription.Widthdescription.Height = front.SurfaceDescription.Heightdescription.SurfaceCaps.OffScreenPlain = Trueback = Ny Surface (beskrivelse, vise ) # Else 'A Caps er et sett av attributter som brukes av de fleste av DirectX komponenter
Dim caps som ny SurfaceCaps () ' Ja , vi bruker en back buffer
< p> caps.BackBuffer = sant
' Knytt foran buffer mot rygg buffer med spesifiserte caps
tilbake = front.GetAttachedSurface ( caps ) # End Hvis
' Opprett Clipper
klipp = Ny Clipper ( display) '' ' Angi region til denne formen
clip.Window = meg " Still klipperen for foran Surface
foran. Clipper = klipp
' Reset beskrivelsen
description.Clear ()' Lag tittelen skjermen
title = Ny Surface ( titlescreen , beskrivelse , display)
< p> description.Clear () ' Still inn høyden og bredden på teksten .
description.Width = 600description.Height = 16 ' OffScreenPlain betyr at dette Surface
'er ikke en front, tilbake , alfa Surface .
description.SurfaceCaps.OffScreenPlain = sant
"Opprett teksten Surface
text = Ny Surface (beskrivelse, display) ' Sett backgroup farge
text.ColorFill ( Color.Black ) "Bruk i forgrunnen fargen på teksten
text.ForeColor = Color.White ' Tegn tekst til overflaten for å coords ( 0,0)
text.DrawText ( 0 , 0 , " Managned DirectX Tutorial 1 - Trykk Enter eller Esc for å avslutte " , sann) End SubPrivate Sub Draw () ' Hvis den fremre ikke opprette, ignorere denne funksjonen
< p> Hvis fronten er ingenting ThenReturnEnd Hvis
' Hvis skjemaet er minimert, ignorere denne funksjonen
p Hvis Me.WindowState = FormWindowState.Minimized ThenReturnEnd IfTry ' Tegn tittelen til baksiden buffer ved hjelp av kilde kopi blit
back.DrawFast ( 0 , 0 , tittel , DrawFastFlags.Wait )
«Tegn også teksten til baksiden buffer ved hjelp kilde kopi blit
back.DrawFast ( 10, 10 , tekst , DrawFastFlags.Wait )
# Hvis DEBUG Then ' Tegn alt dette til front
front.Draw ( rygg, DrawFlags.Wait ) # Else ' gjøre en flip å overføre tilbake buffer til fronten, raskere
# End Iffront.Flip ( rygg, FlipFlags.Wait )
Catch generatedExceptionName Som WasStillDrawingExceptionReturnCatch generatedExceptionName Som SurfaceLostException ' Hvis vi mistet overflatene , gjenopprette overflater
RestoreSurfaces () End TryEnd Gå
Private Sub RestoreSurfaces () ' Brukes til å beskrive en Surface
Dim beskrivelse som ny SurfaceDescription ( )
' Gjenopprett al overflaten associed med enheten
display.RestoreAllSurfaces () ' Tegne teksten
text.ColorFill ( Color.Black ) text.DrawText ( 0 , 0 , " Managned DirectX Tutorial 1 - Trykk Enter eller Esc for å avslutte " , sann)
' for tittelen skjermen , må vi
' kast det først og deretter gjenskape det
title.Dispose ( ) title = Nothingtitle = Ny Surface ( titlescreen , beskrivelse , display) ReturnEnd Sub
5
Kopier og lim inn følgende kode i din klasse konstruktør : en
InitializeComponent ( ) InitDirectDraw ( ) Me.Cursor.Dispose ( ) Me.Show ( ) Mens CreatedDraw ( ) Application.DoEvents ( ) End While
6
Trykk " F5 " for å kjøre programmet og se title.bmp som vises på skjermen .