Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по DirectX

  Все выпуски  

Уроки по DirectX


Информационный Канал Subscribe.Ru

Direct3D для Visual Basic.NET. Рассылки сайта progs.biz
Рассылка № 19
 
Начало > DirectX > Direct3D > VB.NET > Урок 15

Горнаков С. DirectX 9. Уроки программирования на С++.
Горнаков С. DirectX 9. Уроки программирования на С++
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 15.

Direct3D для VB.NET
Урок 15. Выводим текст

Для работы с текстом служит класс Font из пространства имен Microsoft.DirectX.Direct3D. Для использование этого класса мы подсоединяем библиотеку Microsoft.DirectX.Direct3DX через окно References.

Сначала мы заводим на уровне класса формы две необходимые переменные:

    ' Шрифт нашей надписи.
    Dim otherFont As Font = Nothing
    ' Системный шрифт.
    Dim systemFont As System.Drawing.Font = Nothing

Затем пишем метод для вывода текста:

    Public Sub DrawMyText()
        otherFont.Begin()
        otherFont.DrawText("qqq", _
          New System.Drawing.Rectangle(150, 150, 100, 50), _
          DrawTextFormat.Center, Color.Cyan)
        otherFont.End()
    End Sub

Параметры у функции DrawText, которой мы и выводим текст, следующие: первый - надпись, которую выводим, второй - прямоугольник, в котором показываем надпись, третий - способ выравнивания и четвертый - цвет надписи.

Объявленные нами два переменные для шрифтов мы должны проинициализировать в методе InitializeGraphics:

    Public Function InitializeGraphics() As Boolean
            ...
            systemFont = New System.Drawing.Font("ARIAL", 20)
            otherFont = New Font(device, systemFont)
            ...

Обратите внимание, что, во-первых, при создании переменной типа System.Drawing.Font мы указываем в том числе и размер и во-вторых, шрифт для нашего устройства из DirectX (т. е. для видеокарты) мы создаем на основе системного шрифта.

Осталось совсем немного - вызывать метод DrawMyText в методе Render для непосредственного отображения надписи:

    Private Sub Render()
        ...
        device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1)
        ' Вывод текста.
        DrawMyText()
        'Заканчиваем сцену.
        device.EndScene()

Можно запускать программу. Обратите внимание, что буквы будут выводятся без фона - это видно по тому, как треугольник показывается за ними.

Кстати говоря, текст показывается перед треугольником так как в методе Render мы вызываем метод DrawMyText после вызова DrawPrimitives. А если эти методы поменять местами, то будет все наоборот.

Вообще говоря наш метод DrawMyText нужно было писать чуть по-другому - а именно сама выводимая надпись, ее цвет, место и способ выравнивания лучше было бы передавать в качестве параметров. Но в данном случае это не принципиально.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.directxlessons
Отписаться

В избранное