July 23
DirectX è una delle grafiche più importanti di programmazione API utilizzate per i giochi, simulazioni e altre applicazioni grafiche come l'imaging medico. Si tratta di un Windows-only biblioteca a disposizione per l'uso in C ++, così come qualsiasi linguaggio framework .NET, come C # o VB.net. L'unico passo necessario per iniziare a sfruttare tutta la potenza di uno dei più importanti API grafiche in tutto il mondo è quello di aggiungere un riferimento di libreria al progetto NET.
1 Fare clic con il nome del progetto nel pannello di navigazione, e fare clic su "Aggiungi riferimento". Aggiungere i riferimenti di progetto per Microsoft.DirectX.dll e Microsoft.DirectX.DirectDraw.dll.
2 Copia e incolla il seguente nella parte superiore del file Main.vb:
Le importazioni Microsoft.DirectX
Le importazioni Microsoft.DirectX.DirectDraw
3 Nella parte superiore del vostro oggetto di controllo, incollare le seguenti dichiarazioni di variabili:
Display privato come Dispositivo
fronte privato come superficie di = Nothing
Privato indietro come Surface = Nothing
titolo privato come superficie di = Nothing
testo privata come superficie di = Nothing
Private Clip Come Clipper = Nothing
titlescreen privato come stringa = Application.StartupPath + \ "\ title.bmp \"
4 Incollare il seguente codice nella classe sotto il costruttore:
Private Sub InitDirectDraw ()
'Usato per descrivere una superficie
Descrizione fioco come nuovo SurfaceDescription ()
'Init del dispositivo
Display = nuovo dispositivo ()
#if DEBUG Poi
display.SetCooperativeLevel (Me, CooperativeLevelFlags.Normal)
#Altro
'Impostare il livello di cooperativa e genitore,
'Impostato a schermo intero esclusiva alla forma)
display.SetCooperativeLevel (Me, CooperativeLevelFlags.FullscreenExclusive)
'Impostare la risoluzione e profondità di colore
'Utilizzato a schermo intero (640x480, 16 bit colore)
display.SetDisplayMode (640, 480, 16, 0, False)
#Finisci se
'Definire gli attributi per la superficie frontale
description.SurfaceCaps.PrimarySurface = True
#if DEBUG Poi
anteriore = nuova superficie (descrizione, display)
#Altro
description.SurfaceCaps.Flip = True
description.SurfaceCaps.Complex = True
'Imposta il conteggio Indietro Buffer
description.BackBufferCount = 1
'Creare la superficie con la descrizione specifed e dispositivo)
anteriore = nuova superficie (descrizione, display)
#Finisci se
description.Clear ()
#if DEBUG Poi
description.Width = front.SurfaceDescription.Width
description.Height = front.SurfaceDescription.Height
description.SurfaceCaps.OffScreenPlain = True
indietro = nuova superficie (descrizione, display)
#Altro
'A maiuscole è un insieme di attributi utilizzati dalla maggior parte dei componenti DirectX
tappi fioco come nuovo SurfaceCaps ()
'Sì, stiamo usando un buffer indietro
caps.BackBuffer = True
'Associare il buffer anteriore a quella posteriore tampone con tappi specificati
indietro = front.GetAttachedSurface (caps)
#Finisci se
'Creare il Clipper
Clip = Nuovo Clipper (display)
'' 'Impostare la regione a questa forma
clip.Window = Me
'Imposta il tagliatore per la superficie anteriore
front.Clipper = Clip
'Reset la descrizione
description.Clear ()
'Creare la schermata del titolo
title = nuova superficie (titlescreen, descrizione, display)
description.Clear ()
'Impostare l'altezza e la larghezza del testo.
description.Width = 600
description.Height = 16
'OffScreenPlain significa che questo Surface
'Non è un anteriore, posteriore, alfa superficie.
description.SurfaceCaps.OffScreenPlain = True
'Creare la superficie di testo
text = nuova superficie (descrizione, display)
'Impostare il colore backgroup
text.ColorFill (Color.Black)
'Imposta il colore di primo piano del testo
text.ForeColor = Color.White
'Disegnare il testo alla superficie di coordinate (0,0)
text.DrawText (0, 0, \ "Managned DirectX Tutorial 1 - Premere Invio o Esc per uscire \", True)
End Sub
Draw Private Sub ()
'Se la parte anteriore non è creare, ignorare questa funzione
Se frontale è niente allora
Ritorno
Finisci se
'Se il modulo viene ridotto al minimo, ignorare questa funzione
Se Me.WindowState = FormWindowState.Minimized Poi
Ritorno
Finisci se
Provare
'Disegna il titolo al buffer posteriore utilizzando la copia sorgente blit
back.DrawFast (0, 0, titolo, DrawFastFlags.Wait)
'Disegnare il testo anche al buffer posteriore utilizzando la copia sorgente blit
back.DrawFast (10, 10, il testo, DrawFastFlags.Wait)
#if DEBUG Poi
'Disegna tutto questo per il fronte
front.Draw (indietro, DrawFlags.Wait)
#Altro
'Facendo un salto mortale per trasferire di nuovo buffer per la parte anteriore, più veloce
#Finisci se
front.Flip (indietro, FlipFlags.Wait)
Cattura generatedExceptionName Come WasStillDrawingException
Ritorno
Cattura generatedExceptionName Come SurfaceLostException
'Se abbiamo perso le superfici, ripristinare le superfici
RestoreSurfaces ()
End Try
End Sub
RestoreSurfaces Private Sub ()
'Usato per descrivere una superficie
Descrizione fioco come nuovo SurfaceDescription ()
'Ripristinare la superficie al associed con il dispositivo
display.RestoreAllSurfaces ()
'Ridisegna il testo
text.ColorFill (Color.Black)
text.DrawText (0, 0, \ "Managned DirectX Tutorial 1 - Premere Invio o Esc per uscire \", True)
'Per la schermata del titolo, abbiamo bisogno di
'Disporre in primo luogo e poi ricrearlo
title.Dispose ()
title = Nothing
title = nuova superficie (titlescreen, descrizione, display)
Ritorno
End Sub
5 Copia e incolla il seguente codice nel costruttore di classi:
InitializeComponent ()
InitDirectDraw ()
Me.Cursor.Dispose ()
Me.Show ()
mentre Creato
Disegnare()
Application.DoEvents ()
End While
6 Premere il tasto "F5" per eseguire l'applicazione e vedere il title.bmp viene visualizzato sullo schermo.