Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

3D programmeren met Visual Basic

Bart van Delft
5 antwoorden
  • Hoi allemaal,

    ik heb laatst een boek gekocht om 3d-games te maken met visual basic. Helaas geeft windows telkens een foutmelding, zelfs bij de programma's die op cd bijgleverde cd staan. Een van de programmacode's staat hieronderaan (hier wordt nog geeneens 3d bij gebruikt, maar je hebt toch directx 8.0 nodig), maar werkt niet helemaal.

    Ik heb het idee dat ik het verkeerd aanpak, want ik start visual basic vanuit MS Words, en kan niet kiezen voor een '.exe - file' zoals in het boek (en andere boeken over visual basic) staat. Moet ik VB anders opstarten? Of heb ik een ander programma nodig?. Hier is de code:

    (half in het engels,half in het nederlands, eigen vertaling)

    Dim Dx As DirectX8 'Inclusief DirectX
    Dim D3D As Direct3D8 'Direct3D
    Dim D3DDevice As Direct3DDevice8 'Verwijzing naar Hardware
    Dim bRunning As Boolean 'Running or Not
    Private Declare Function GetTickCount Lib "kernel32" () As Long 'Framerate berekening
    Dim LastTimeCheckFPS As Long 'Checkt laatste tijd
    Dim FramesDrawn As Long 'Number of times drawn
    Dim FrameRate As Long 'Tegenwoordig tempo van beelden weergave, aantal beelden per seconde
    Private Sub Form_Load()
    Me.Show 'Show form
    bRunning = Initialise() 'Roept initialise die terugkomt met true of false
    Do While bRunning
    DoEvents
    'IF …. then loop to calculate Frame Rate
    If GetTickCount - LastTimeCheckFPS >= 1000 Then
    LastTimeCheck = GetTickCount
    FrameRate = FramesDrawn 'Framecount
    FramesDrawn = 0 'Reset
    Me.Caption = "FPS: " & FrameRate 'Display FPS in caption
    End If
    FramesDrawn = FramesDrawn + 1 'Total number of frames
    Loop 'Will loop until bRunning is set to false
    On Error Resume Next
    Set D3DDevice = Nothing
    Set D3D = Nothing
    Set Dx = Nothing
    Unload Me
    End
    End Sub
    'Begin functie initialize hier:
    Public Function Initialize() As Boolean
    'Return true or false
    On Error GoTo ErrHandler
    Dim DispMode As D3DDISPLAYMODE 'Play mode
    Dim D3DWindow As D3DPRESENT_PARAMETERS 'Viewport
    Set Dx = New DirectX8 'DirectX object
    Set D3D = Dx.Direct3DCreate() 'Create Direct3D Interface
    D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, DispMode 'Get current Mode
    D3DWindow.Windowed = 1 'Set to Windowed Mode 0 = geen windowmode
    D3DWindow.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC 'Refresh as Monitor Does
    D3DWindow.BackBufferFormat = DispMode.Format 'Use Screen Format Just Received
    Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Form1.hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, D3DWindow)
    Initialize = True 'If success set to true
    Exit Function
    ErrHandler:
    Initialize = False 'If failed, set to fals
    End Function
    Public Sub Render()
    D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, &HCCCCFF;, 1#, 0
    D3DDevice.BeginScene
    'Plaats rendering code hier!
    D3DDevice.EndScene
    D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0 'Update to Screen, ByVal _ sends 0 instead of nothing
    End Sub

    Hopelijk kan iemand mij hiermee helpen :-?

    Alvast bedankt!

    Bart
  • Beste kerel,

    je wilt toch niet zeggen dat je VBA gebruikt he?? :lol:

    Dat is een VB achtige macro-taal die bij MS-Word zit ja, die heeft lang niet alle mogelijkheden van de gewone VB. Die zul je dus moeten kopen in de winkel.

    Of een iets oudere versie op een beurs, scheelt een hoop poen.
  • Tja, dat had ik kunnen weten, maar waarom zegt dat @#GRRR#@ boek dat dan niet? Nou moet ik [i:d7e385d296]nog[/i:d7e385d296] meer geld uitgeven…. zucht…. :(

    Maar wel heel erg bedankt :)
  • Stuur me maar een mailtje, ik kan je wel aan VB helpen.
  • Minder illegaal (lijkend) is http://msdn.microsoft.com/vbasic/downloads/tools/cce/default.asp
    Daar haal je een volledige versie van vb5 maar zonder de mogelijkheid om executables te maken

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.