Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Инициализация DX в VB2005 Добавлено: 08.04.07 16:14  

Автор вопроса:  -=Fenix=-
Как правильно инициализировать DirectX?


Imports Microsoft.DirectX
Imports Microsoft.DirectX.Direct3D
..................................
Private device As Device = Nothing
Shared Sub Main()
  Dim frm As New Form1()

  If Not frm.InitializeGraphics() Then
    MsgBox("Direct3D не инициализируется.")
    Return
  End If

  frm.Show()

  While frm.Created
    frm.Render()
     Application.DoEvents()
  End While
End Sub

Public Function InitializeGraphics() As Boolean
  Try
     Dim presentParams As New PresentParameters

     presentParams.Windowed = True
     presentParams.SwapEffect = SwapEffect.Discard
     device = New Device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, presentParams)
     Return True
  Catch e As DirectXException
    Return False
  End Try
End Function

Private Sub Render()
  If device Is Nothing Then
    Return
  End If

  device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, 1.0F, 0)
  device.BeginScene()
  device.EndScene()
  device.Present()
End Sub


Должно вывести форму залитую голубым цветом. Результат - выводиться обыкновенная форма серого цвета как и была. Почему неработает?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 dNW



Вопросов: 30
Ответов: 683
 Профиль | | #1 Добавлено: 08.04.07 20:31
Сделай так, чтобы этот код срабатывал не при запуске формы, а при нажатий на кнопку.

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 08.04.07 21:57
Поставь себе vb .net 2005 и я тебе сброшу проект, где все прекрасно заливается ;) 192-496-851

Ответить

Номер ответа: 3
Автор ответа:
 K&M



ICQ: 225442067 

Вопросов: 20
Ответов: 170
 Профиль | | #3 Добавлено: 11.04.07 18:19
frm.Created - не лучшее условие выполнения цикла рендеринга...

Ответить

Номер ответа: 4
Автор ответа:
 Vinzent



Вопросов: 2
Ответов: 9
 Профиль | | #4 Добавлено: 08.05.07 17:23
По моему скопировано правильно.) А ты уверен что прога начинается с sub main? Еще вопрос почти по теме. Как применять матрицы к конкретным объектам?

Ответить

Номер ответа: 5
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #5
Добавлено: 08.05.07 19:11
А ты уверен
возможно я ошибаюсь, но по-моему Fenix - девушка


    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint

        g = e.Graphics
        Dim m As New System.Drawing.Drawing2D.Matrix(1, 0, 0, 1, 0, 0)

        m.Translate(p.X, p.Y)
        g.Transform = m
        g.ScaleTransform(MScale, MScale)
        g.TranslateTransform(-p.X, -p.Y)

        g.DrawLine(Pens.Blue, 100, 200, 200, 20)
        g.DrawLine(Pens.Blue, 100, 100, 20, 20)
        g.DrawRectangle(Pens.Blue, 100, 100, 20, 20)

    End Sub

Ответить

Номер ответа: 6
Автор ответа:
 Vinzent



Вопросов: 2
Ответов: 9
 Профиль | | #6 Добавлено: 09.05.07 14:26
Если что извините, смотрел только код.) Нет, я имею ввиду матрицы в direct3d... Есть метод чтобы применять матрицы мира/просмотра/проекции.. А операции с отдельными объектами? А за код все равно спасибо, пригодится,)

Ответить

Номер ответа: 7
Автор ответа:
 mich



ICQ: 261800349 

Вопросов: 19
Ответов: 148
 Web-сайт: belkyokushin.net
 Профиль | | #7
Добавлено: 14.06.07 02:38
Как применять матрицы к конкретным объектам?


 'Planka
        'device.Transform.World.Translate(Noid.Planka.X, 0, 0)
        device.Transform.World = Matrix.Translation(Noid.Planka.X, 0, 0)
        device.DrawPrimitives(PrimitiveType.TriangleList, countKirp * 3, countPlanka)

        'Ball
        'device.Transform.World.Translate(Noid.Ball.X, Noid.Ball.Y, 0)
        device.Transform.World = Matrix.Translation(Noid.Ball.X, Noid.Ball.Y, 0)
        device.DrawPrimitives(PrimitiveType.TriangleList, (countKirp + countPlanka) * 3, countBall)

  
        'Kirp

        device.Transform.World = Matrix.Translation(0, 0, 0)
        device.DrawPrimitives(PrimitiveType.TriangleList, 0, countKirp)


Ответить

Номер ответа: 8
Автор ответа:
 mich



ICQ: 261800349 

Вопросов: 19
Ответов: 148
 Web-сайт: belkyokushin.net
 Профиль | | #8
Добавлено: 14.06.07 02:48
Вопрос: (vb2005, DirectX)
Запускаю сделанную мной игрушку.
Иногда притормаживает, от 25 до 100 FPS.
Во время игры запускаю фильм в Light Alloy.
Игра начинает просто летать. все время 100-110 FPS. В чем дело?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам