Я использую Visual Basic 2012. Я проверил много руководств в сети. Я сделал точно так же, как в учебниках, чтобы добавить ссылку на DirectX в Visual Basic. но когда я запускаю свою программу, она иногда показывает ошибки, иногда зависает, иногда ничего не показывает и компилируется.
Я думаю, что в учебниках они используют другую версию Visual Basic, но как мне добавить ссылку на DirectX в Visual Basic, чтобы он работал нормально? данный код должен работать нормально, потому что он точно такой же, как в учебнике. Я использую визуал бейсик 2012.
Imports Microsoft.DirectX
Imports Microsoft.DirectX.Direct3D
Imports Microsoft.DirectX.DirectInput
Public Class Form1
Dim runonce As Boolean = True
Dim gamerun As Boolean = True
Dim bkgcolor As Color = Color.Black
Dim d3dev As Direct3D.Device
Dim d3dpp As New PresentParameters ' = New PresentParameters
Dim drawfont As Direct3D.Font
Dim x As Int32
Dim wait As Int32
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
gamerun = False
End Sub
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
If (e.KeyCode = Keys.Escape) Then
gamerun = False
Me.Close()
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim pos As Point
pos.X = 0
pos.Y = 0
Me.Location = pos
Me.Height = 600
Me.Width = 800
Me.Show()
End Sub
Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
If runonce Then
Me.Show()
runonce = False
init()
run()
End If
End Sub
Private Sub init()
d3dpp.DeviceWindow = Me
d3dpp.BackBufferCount = 1
d3dpp.BackBufferFormat = Format.X8R8G8B8
d3dpp.BackBufferHeight = Me.Height
d3dpp.BackBufferWidth = Me.Width
d3dpp.SwapEffect = SwapEffect.Discard
d3dpp.PresentationInterval = PresentInterval.Immediate
d3dpp.Windowed = True
d3dpp.EnableAutoDepthStencil = True
d3dpp.AutoDepthStencilFormat = DepthFormat.D24S8
d3dev = New Direct3D.Device(0, Direct3D.DeviceType.Hardware, Me, CreateFlags.HardwareVertexProcessing, d3dpp)
drawfont = New Direct3D.Font(d3dev, New System.Drawing.Font("IMPACT", 32, FontStyle.Regular, GraphicsUnit.Pixel))
x = 25
wait = 0
End Sub
Private Sub run()
Do While gamerun
d3dev.Clear(ClearFlags.Target, Color.Black, 1, 0)
d3dev.BeginScene()
drawfont.DrawText(Nothing, "TEST", x, 50, Color.DarkCyan)
d3dev.EndScene()
d3dev.Present()
Windows.Forms.Application.DoEvents()
Loop
End Sub
End Class