DirectX é um dos principais gráficos de programação APIs usadas para jogos , simulações e outras aplicações de gráficos, tais como imagens médicas. É um somente para Windows biblioteca disponível para uso em C + + , assim como qualquer língua. NET como C # ou VB.net . O único passo necessário para começar a aproveitar o poder completo de um dos principais APIs gráficas do mundo é adicionar uma referência à sua biblioteca . Projecto net. Instruções
1
botão direito do mouse no nome do projeto no painel de navegação e clique em "Add Reference ". Adicione referências de projeto para Microsoft.DirectX.dll e Microsoft.DirectX.DirectDraw.dll
2
Copie e cole o seguinte no topo do seu arquivo Main.vb : .
Imports Microsoft.DirectXImports Microsoft.DirectX.DirectDraw
3
no topo de seu objeto Controller, cole as seguintes declarações de variáveis :
exibição privado como DevicePrivate frente como a superfície = NothingPrivate Como o título de volta Superfície = NothingPrivate Como Superfície = text NothingPrivate Como Superfície = clipe NothingPrivate Como Clipper = NothingPrivate titlescreen as String = Application.StartupPath + " \\ " title.bmp
4
cole o seguinte código em sua classe abaixo o construtor:
Private Sub InitDirectDraw () ' usado para descrever uma superfície
Dim descrição as New SurfaceDescription () ' init o Dispositivo
exibição
= New Device ( ) # Se DEBUG Thendisplay.SetCooperativeLevel (Me , CooperativeLevelFlags.Normal ) # Else 'Definir o nível eo pai Cooperativa ,
' setado para tela inteira exclusivo para o formulário)
display.SetCooperativeLevel ( me, CooperativeLevelFlags.FullscreenExclusive ) 'Definir a resolução e profundidade de cor
' usado em tela cheia (640x480, cores de 16 bits)
display.SetDisplayMode ( 640, 480 , 16, 0, False ) # End If
'Define os atributos para a superfície frontal
description.SurfaceCaps.PrimarySurface = true
# Se DEBUG Thenfront = Novo Superfície ( descrição, tela) # Elsedescription.SurfaceCaps.Flip = Truedescription.SurfaceCaps.Complex = True
'Definir o buffer de fundo contagem
description.BackBufferCount = 1
' Criar a superfície com descrição e specifed dispositivo )
frente = Novo Superfície ( descrição , display ) # Fim Ifdescription.Clear () # Se DEBUG Thendescription.Width = front.SurfaceDescription.Widthdescription.Height = front.SurfaceDescription.Heightdescription.SurfaceCaps.OffScreenPlain = Trueback = Nova Superfície ( descrição , display ) # Else 'A Caps é um conjunto de atributos usados pela maioria dos componentes DirectX
Dim tampas como novo SurfaceCaps ()' Sim, nós estamos usando um buffer de fundo
caps.BackBuffer = True
" Associar o buffer de frente para trás tampão com tampas especificados
back = front.GetAttachedSurface ( Caps) # End If
'Criar o Clipper
clipe = Novo Clipper (visualização )'' 'Definir a região para esta forma
clip.Window = me' Defina o clipper para a superfície
frente
frente . Clipper = clipe
'Reset a descrição
description.Clear ()' Criar a tela de título
title = Nova Superfície ( titlescreen , descrição , display )
description.Clear () 'Definir a altura ea largura do texto.
description.Width = 600description.Height = 16' OffScreenPlain significa que este Superfície
'não é uma frente , volta , alfa Surface.
description.SurfaceCaps.OffScreenPlain = True
'Criar Superfície texto
texto
= Novo Superfície ( descrição , display ) ' Definir a cor backgroup
text.ColorFill ( Color.Black ) ' Definir a cor de primeiro plano do texto
text.ForeColor = Color.White ' desenhar o texto para a superfície para coordenadas (0,0 ) < br >
text.DrawText ( 0, 0, " Managned DirectX Tutorial 1 - Pressione Enter ou Escape para sair ", True ) End Sub SubPrivate Desenhe () ' Se a frente não é criar , ignorar esta função
Se frente é nada ThenReturnEnd Se
' Se o formulário é minimizado , ignore esta função
Se Me.WindowState = FormWindowState.Minimized ThenReturnEnd IfTry ' Desenhe o título para o buffer de fundo usando fonte copiar blit
back.DrawFast (0, 0 , título, DrawFastFlags.Wait )
' Desenhe o texto também para o buffer de fundo usando fonte Copiar blit
back.DrawFast (10, 10 , texto, DrawFastFlags.Wait )
# Se DEBUG Then ' Desenhe tudo isto para a frente
front.Draw (costas, DrawFlags.Wait ) # Else' Fazer um flip para transferir de volta buffer para a frente , mais rápido
# Fim Iffront.Flip (costas, FlipFlags.Wait )
pegar generatedExceptionName Como WasStillDrawingExceptionReturnCatch generatedExceptionName Como SurfaceLostException ' Se perdemos as superfícies , restaurar as superfícies
RestoreSurfaces () End Sub TryEnd
Sub RestoreSurfaces privados () ' usado para descrever uma superfície
Dim descrição As New SurfaceDescription ()
' Restaurar al superfície associed com o dispositivo
display.RestoreAllSurfaces () ' Redesenhar o texto
text.ColorFill ( Color.Black ) text.DrawText ( 0, 0, " Managned DirectX Tutorial 1 - Pressione Enter ou Escape para sair ", True )
' para a tela de título , precisamos
' eliminá-lo primeiro e depois recriá-la
title.Dispose () title = Nothingtitle = Novo Superfície ( titlescreen , descrição , display ) ReturnEnd Sub
5
Copie e cole o seguinte código em seu construtor de classe :
InitializeComponent () InitDirectDraw () Me.Cursor.Dispose () Me.Show () Enquanto CreatedDraw ( ) Application.DoEvents ( ) End While
6
Pressione " F5" para executar o aplicativo e ver o que está sendo exibido em title.bmp tela.