DimP
offline
Опыт:
1,741Активность: |
Прорисовка текста с помощью DirectX api (для новичков)
Инструменты:Directx SDK (Microsoft.com) Microsoft Visual Studio (нужен VC++)(Microsoft.com) D3D Starterkit by Azorbix (В архиве) Подготовка:Будем считать что MVS и DirectX sdk уже скачаны и установлены. Запускаем VC++, идем tools->options, выбираем вкладку directories и прописываем пути ко всем папкам из directx sdk. (если у вас старая версия VC++ ,например 6.0, тогда скопируйте все файлы проекта в папку old worksplace ,и запустите TatniumD3D.dsw) Для DirectX 9 приложений.Для прорисовки текста можно писать свои функции, но я думаю для начала проще и надежнее использовать уже готовые. Будем использовать d3dfont class by Azorbix. Копируем .h и .cpp файлы в папку с проектом, потом загружаем их (Project-> Add to Project -> Files). Далее идем d3d9dev.cpp , и создаем две функции: Код:
Находим Код:
Записываем туда Код:
Находим Код:
Записываем Код:
Теперь мы можем использовать функцию AddFont() Код:
Где x,y -позиция текста на экране, a,r,g,b цвет в формате argb. Остальные два параметра это формат(можно использовать FT_CENTER, FT_BORDER), и собственно строка. Для прорисовки созданного текста в IDirect3DDevice9::EndScene() нужно написать Код:
Пример, рисуем Hello World в середине экранаОбъявляем переменные: Код:
В BeginScene(): записываем середину экрана в x, y. Код:
В EndScene() : Код:
Для DirectX 8 приложенийСоздайте проект с файлами из папки D3D8/. Теперь создадим функцию рисующую текст. Код:
В BeginScene() пишем: Код:
В EndScene () рисуем текст: Код:
ЗагрузчикКомпилируем dll ,теперь ее нужно внедрить в процесс. Для этого можно использовать TatniumLoader из D3D Starterkit, или написать загрузчик самому. Будем использовать TatniumLoader. Идем в папку Injector и запускаем проект. Находим main.cpp ,в нем строку #define APP_EXE "target_application.exe" И записываем название процесса приложения, в который надо поместить dll, вместо "target_application.exe" . Думаю это пригодится для изготовления ingame меню и т.п. Пример меню для WarCraft 3Скриншоты: Исходник и текстуры в архиве. Отредактировано DimP, 01.01.2010 в 20:17. |
31.12.2009, 15:34 | #1
+1/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
RazArt
offline
Опыт:
11,197Активность: |
И чё? Какая связь с варом? о_О
|
31.12.2009, 20:47 | #2
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DragonSpirit
у - уходи
offline
Опыт:
22,625Активность: |
RazArt, мб для создания ingame меню в модах.. |
31.12.2009, 20:55 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
Новички будут делать
Цитата:
|
|
31.12.2009, 21:00 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
RazArt
offline
Опыт:
11,197Активность: |
Для этого есть целые учеблики по сипп и графике...
|
31.12.2009, 21:00 | #5
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DimP
offline
Опыт:
1,741Активность: |
RazArt тут конкретные функции, готовые инструменты... Думаю посмотреть статью проще чем читать толстый учебник(и не один) с первой страницы. Связь с warcraft есть, т.к warcraft использует directx, 8.1 вроде.
|
31.12.2009, 21:31 | #6
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
RazArt
offline
Опыт:
11,197Активность: |
То есть ты хочешь вшить свои ф-ции в вар?)
А если серьёзно, то вар для винды, мб напишем какую-нибудь статью про неё?) |
31.12.2009, 22:48 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DimP
offline
Опыт:
1,741Активность: |
В теме "Темы написания статей" есть пункт "Взаимодействие внешних программ с движком Warcraft и его редактирование" ,статья должна помочь сделать "взаимодействие внешних программ с движком Warcraft" более понятным пользователю (GUI к какой-нибудь программе например). =)
|
31.12.2009, 23:01 | #8
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Lazdakon
/dev/null
offline
Опыт:
44,170Активность: |
RazArt, солидарен. Статья не нужная, большая аудитория новичков и не только, этим не заинтерисуется. Некоторые даже не знают об этом.
Отредактировано Nething, 17.07.2010 в 11:31. |
31.12.2009, 23:18 | #9
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
RazArt
offline
Опыт:
11,197Активность: |
DimP, напиши статью о вшивки в дллки вара сторонних ф-ций, тогда станет интересно
|
01.01.2010, 00:29 | #10
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Cytaster
offline
Опыт:
3,757Активность: |
Можно скрины или примеры? |
01.01.2010, 01:00 | #11
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DimP
offline
Опыт:
1,741Активность: |
Sarcazi, добавил пример простенького меню и скриншоты.
|
01.01.2010, 20:18 | #12
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
для меню есть DGUI :P |
02.01.2010, 05:26 | #13
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DimP
offline
Опыт:
1,741Активность: |
ScorpioT1000, С помощью dgui можно рисовать меню для внешних программ ?
|
02.01.2010, 10:37 | #14
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
YellowStar
poon
offline
Опыт:
15,144Активность: |
Круче добавить блур эффект. Или сглаживания плюс анизатропные фильтрации. Даешь такую модификацию! |
02.01.2010, 12:30 | #15
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
SwuJe
aka Sakh_badboy
offline
Опыт:
15,238Активность: |
DimP, как это чудо вставить в вар? |
02.01.2010, 13:16 | #16
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
FunkieFoO
offline
Опыт:
7,159Активность: |
сах а ты статью то прочитай :Р
статья хороша, автору респектище |
02.01.2010, 13:25 | #17
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DragonSpirit
у - уходи
offline
Опыт:
22,625Активность: |
Всё же респект :) удобнее дгуи,но отдельная прога не есть гуд => только для модов |
02.01.2010, 14:52 | #18
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Sonic456
offline
Опыт:
943Активность: |
>Компилируем dll ,теперь ее нужно внедрить в процесс.
Для этого можно использовать TatniumLoader из D3D Starterkit, или написать загрузчик самому. Будем использовать TatniumLoader. Идем в папку Injector и запускаем проект. Находим main.cpp ,в нем строку #define APP_EXE "target_application.exe" И записываем название процесса приложения, в который надо поместить dll, вместо "target_application.exe" .> То есть, я так понимаю, Вар взламывать? |
03.01.2010, 19:06 | #19
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
хрена себе.. а мы с дгуи мучаемся ^_^ хотя я подозреваю тут тоже не без косяков.. |
03.01.2010, 19:13 | #20
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|