DirectX is een van de toonaangevende grafische programmering APIs gebruikt voor games , simulaties en andere grafische toepassingen zoals medische beeldvorming . Het is een Windows -only bibliotheek beschikbaar voor gebruik in C + + , alsmede alle . NET framework taal zoals C # of VB.net . De enige stap die nodig zijn om het volledige potentieel van een van de toonaangevende grafische API's in de wereld te beginnen is om een bibliotheek verwijzing naar uw . Netto- project toe te voegen . Instructies 1 de rechtermuisknop op de naam van het project in het navigatiepaneel en klik op "Reference toevoegen . " Voeg verwijzingen project om Microsoft.DirectX.dll en Microsoft.DirectX.DirectDraw.dll Copy 2 en plak de volgende in de bovenkant van uw Main.vb bestand : . Imports Microsoft.DirectXImports Microsoft.DirectX.DirectDraw 3 Aan de bovenkant van je controller object , plak de volgende variabele declaraties : Prive weergave Zoals DevicePrivate voorzijde als Surface = NothingPrivate terug Zoals Surface = NothingPrivate title Zoals Surface = NothingPrivate tekst Zoals Surface = NothingPrivate clip Zoals Clipper = NothingPrivate titelscherm As String = Application.StartupPath + " \\ title.bmp " 4 Plak de volgende code in uw klasse onder de constructor : Private Sub InitDirectDraw ( ) op ' Wordt gebruikt om een oppervlak Dim beschrijving omschrijven als Nieuwe SurfaceDescription ( ) ' Init het apparaat scherm = New Device ( ) # Als DEBUG Thendisplay.SetCooperativeLevel ( Me , CooperativeLevelFlags.Normal ) # Else ' Stel de Coöperatieve niveau en ouder , ' ingeklemd naar Full Screen Exclusief voor de vorm ) display.SetCooperativeLevel ( me , CooperativeLevelFlags.FullscreenExclusive ) ' Stel de resolutie en kleurdiepte ' gebruikt in een volledig scherm ( 640x480 , 16-bits kleuren ) display.SetDisplayMode ( 640 , 480 , 16 , 0 , False ) # End If de attributen ' Definieer voor de voorste Surface description.SurfaceCaps.PrimarySurface = True # Als DEBUG Thenfront = New Surface ( beschrijving , weergave ) # Elsedescription.SurfaceCaps.Flip = Truedescription.SurfaceCaps.Complex = True ' Zet de Back Buffer count description.BackBufferCount = 1 ' de Surface maken met specifed beschrijving en apparaat ) voorzijde = Nieuw Surface ( beschrijving , weergave ) # End Ifdescription.Clear ( ) # Als DEBUG Thendescription.Width = front.SurfaceDescription.Widthdescription.Height = front.SurfaceDescription.Heightdescription.SurfaceCaps.OffScreenPlain = Trueback = Nieuwe Surface ( beschrijving , weer ) # Else ' een Caps is een set van attributen die worden gebruikt door de meeste van DirectX componenten Dim caps als Nieuwe SurfaceCaps ( ) ' Ja, wij zijn met behulp van een back buffer caps.BackBuffer = True ' Koppel de voorste buffer aan buffer terug met gespecificeerde caps terug = front.GetAttachedSurface ( caps ) # End If ' Maak het clipper clip = Nieuwe Clipper (display) '' ' Stel de regio om dit formulier clip.Window = Me' de clipper Set voor de voor- Surface voorzijde . clipper = clip ' Reset de beschrijving description.Clear ( ) op ' het titelscherm title Maak = Nieuw Surface ( titelscherm , beschrijving , weergave ) op description.Clear () ' de hoogte en breedte van de tekst instellen . description.Width = 600description.Height = 16' OffScreenPlain betekent dat deze Surface ' is niet een front , terug , alpha Surface . description.SurfaceCaps.OffScreenPlain = True ' de tekst Surface tekst Maak = Nieuw Surface ( beschrijving , weergave ) ' Zet de backgroup kleur < br text.ColorFill > ( Color.Black ) ' Zet de voorgrond kleur van de tekst text.ForeColor = Color.white ' Teken de tekst om de Surface te coords ( 0,0) < br text.DrawText > ( 0 , 0 , " Managned DirectX Tutorial 1 - Druk op Enter of Escape om af te sluiten " , True ) End Sub SubPrivate Draw ( ) ' Als de voorzijde niet is te maken , negeert deze functie Als de voorkant is Nothing ThenReturnEnd Als ' Als het formulier is geminimaliseerd , negeer deze functie Als Me.WindowState = FormWindowState.Minimized ThenReturnEnd IfTry ' Teken de titel aan de achterkant buffer met behulp van de bron kopie blit back.DrawFast ( 0 , 0 , titel , DrawFastFlags.Wait ) op Twitter ' de tekst ook Trek aan de achterkant buffer met behulp van de bron kopie blit back.DrawFast ( 10 , 10 , tekst , DrawFastFlags.Wait ) op Twitter # Als DEBUG dan ' Draw dit alles aan de voorkant front.Draw ( rug , DrawFlags.Wait ) # Else ' Doing a flip om terug over te dragen buffer naar de voorkant , sneller # End Iffront.Flip ( rug , FlipFlags.Wait ) op Twitter Catch generatedExceptionName Zoals WasStillDrawingExceptionReturnCatch generatedExceptionName Zoals SurfaceLostException ' Als we de vlakken verloren , het herstel van de oppervlakken RestoreSurfaces ( ) End Sub TryEnd Private Sub RestoreSurfaces ( ) op ' Wordt gebruikt om een oppervlak Dim beschrijving omschrijven als Nieuwe SurfaceDescription ( ) op ' Herstel al het oppervlak associed met het apparaat display.RestoreAllSurfaces ( ) op ' de tekst text.ColorFill ( Color.Black ) text.DrawText ( 0 , 0 , " Managned DirectX Tutorial 1 opnieuw tekenen - Druk op Enter of Escape om " , True ) op Twitter verlaten ' voor het titel scherm , moeten we ' het eerst vervreemden en vervolgens opnieuw maken title.Dispose ( ) title = Nothingtitle = New Surface ( titelscherm , beschrijving , weergave ) ReturnEnd Sub Kopieer 5 en plak de volgende code in je klas bouwer: InitializeComponent ( ) InitDirectDraw ( ) Me.Cursor.Dispose ( ) Me.Show ( ) Terwijl CreatedDraw ( ) Application.DoEvents ( ) End While Druk op " F5 " 6 om uw toepassing uit te voeren en zie de title.bmp op wordt weergegeven het scherm .
|