Войти
Вело-изобретателиФорумMXEngine - движок для VB6

MXEngine & dx_vb (21 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 120 21 22 2326 Следующая »
#300
18:27, 20 ноя. 2011

Mikle
> свою обработку
Например?


#301
18:48, 20 ноя. 2011

Например:
http://www.gamedev.ru/community/composers/forum/?id=145531

#302
20:26, 20 ноя. 2011

Mikle
Для тулса самое то, но я думаю вряд-ли понадобится в игре такая вот "онлайновая" обработка... В DXSound есть тонна фильтров для работы с эффектами... Можно конечно и самому но мне кажется это долго...
Сделаю универсально, чтоб и в массив можно было сохранять и в надстройку DXBuffer...

#303
22:58, 23 ноя. 2011

Наконец дописал либу oggvb... Теперь можно работать с ogg файлами...
Демко http://www.mx255.narod.ru/files/OggDemo.rar

#304
12:46, 14 дек. 2011

Поработал с RenderTarget - ом...
Вот думаю стоит ли для него сделать функции в текстурном менеджере...
Сам текстурный менеджер будет хранить 2 сурфейса для временного хранения Z буфера и бэк буфера.
Примерно так:

core.Textures.BeginRenderTarget() 'сохранит буферы
   'Что то рендерим в другие текстуры
core.Textures.EndRenderTarget() 'загрузит их обратно
Причем при потере устройства, вызовами:
core.Textures.ReloadTextures 'получим сурфейсы
core.Textures.FreeTextures 'освободим сурфейсы

И отдельно сделать класс-надстройку для сурфейсов:

RenderTarget.Init(render_texture_id, surface_level, stancil_texture_id, surface_level)

RenderTarget.Begin()
   'рисуем
RenderTarget.End()

RenderTarget.GetRenderTexture()
RenderTarget.GetStancilTexture()

#305
14:28, 14 дек. 2011

Выглядит удобно. Но мне кажется, что для 2D движка это уже перебор, я бы сосредоточился на простоте использования, а не на технических возможностях.

#306
14:45, 14 дек. 2011

Mikle
> 2D движка
В дальнейшем планируется и 3D функционал... Но только тогда, когда 2D станет более-менее юзабелен...

Mikle
> простоте использования
В смысле?

#307
16:06, 14 дек. 2011

max255
> В смысле?
Что-то типа конструктора, чтобы пользователь мог вообще ничего не знать про DirecvX, а пользовался ф-циями типа:
CreateMap (MapType As tMapType, fName As String)
Map.Collision(Src As Animation) As Boolean
и т. п., это только для примера.

#308
16:35, 14 дек. 2011

Mikle
Можно такое сделать... Это добавит еще классов в двиг...
Сейчас как раз делаю физику Phys
Правда самое сложное - это колизии многоугольников, еще впереди...

Mikle
> типа конструктора
Случаем не отдельная IDE?

#309
17:22, 14 дек. 2011

max255
> Случаем не отдельная IDE?
Сам же понимаешь, задача почти непосильная.
Нет, просто набор ф-ций-классов, абстрагирующих создание простых игр определённого жанра. Плюс набор простых утилит - редакторов карт, конвертнров форматов и т. п.
max255
> Сейчас как раз делаю физику
Прикольно!
Но сложнее не сделать саму физику, а сделать так, чтобы твою физику применять было легче и проще, чем написать свою, вот о чём я.

#310
0:06, 28 дек. 2011

Запутался с менеджером шрифтов... Шрифты же тоже надо перезагружать после LostDevice...
Как его лучше организовать...

Сейчас шрифт - это отдельный класс с текстурой и массивами текстурных координат и размерами 256 символов(решил рассчитывать их заранее, а не в каждом кадре)
А менеджер - массив с указателями на эти шрифты. Выборка и поиск только по ид в массиве...

Работа с шрифтами через функции переходники типа:

Public Function DrawText(text)
   fonts(selected_font).DrawText(text)
End Function

#311
0:31, 29 дек. 2011

В общем доделал менеджер...
Сейчас выглядит так:

'Инициализация (10 - максимальное количество шрифтов менеджера)
fonts.Init 10

'Создание шрифта
fn = fonts.CreateFont("Monotype Corsiva", 25, 0, 0, 0, 0, , , 4, D3DUSAGE_DYNAMIC Or D3DUSAGE_AUTOGENMIPMAP, D3DPOOL_DEFAULT)

'Установка шрифта
fonts.SelectFont fn

'Использование
fonts.СurrentFont.DrawText 10, 10, "Текст которого нет", &HFF909090, &HFF101010
fonts.СurrentFont.DrawAlignText g_2D.GetView, MX_H_MIDDLE, MX_V_TOP, "Align text", &HFF909090, &HFF101010

#312
9:16, 29 дек. 2011

Я так понял, &HFF909090 и &HFF101010 - это ForeColor и BackColor? Альфа работает?
Зачем D3DUSAGE_AUTOGENMIPMAP в шрифтах?

#313
10:36, 29 дек. 2011

Mikle
> &HFF909090 и &HFF101010 - это ForeColor и BackColor?
Да все верно...
Альфа тоже работает, все по тому же принципу:
Текстурная альфа(рассчитанная при создании шрифта) умножается с дифузной, затем блендится с BackColor(который находится в TEXTUREFACTOR)

   If SetStates Then
      g_dev.SetTextureStageState 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1
      g_dev.SetTextureStageState 0, D3DTSS_COLORARG1, D3DTA_DIFFUSE
    
      g_dev.SetTextureStageState 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE
      g_dev.SetTextureStageState 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE
      g_dev.SetTextureStageState 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE
    
      g_dev.SetTextureStageState 1, D3DTSS_COLOROP, D3DTOP_BLENDCURRENTALPHA
      g_dev.SetTextureStageState 1, D3DTSS_COLORARG1, D3DTA_CURRENT
      g_dev.SetTextureStageState 1, D3DTSS_COLORARG2, D3DTA_TFACTOR
    
      g_dev.SetTextureStageState 1, D3DTSS_ALPHAOP, D3DTOP_BLENDCURRENTALPHA
      g_dev.SetTextureStageState 1, D3DTSS_ALPHAARG1, D3DTA_CURRENT
      g_dev.SetTextureStageState 1, D3DTSS_ALPHAARG2, D3DTA_TFACTOR
      g_dev.SetRenderState D3DRS_TEXTUREFACTOR, bgColor
   End If

Mikle
> Зачем D3DUSAGE_AUTOGENMIPMAP в шрифтах?
Не обращай внимания... Просто проверял работают ли уровни... Оказалось для таких (NO_POW2) текстур нет...

Единственный минус менеджера, что он создает каждый раз новый GDI шрифт(0,000001 сек)...
А плюсы это то, что не нужно их больше перезагружать, менеджер делает все сам.
И при попытке создать шрифт с похожими параметрами "на руки" выдаст тот что уже есть и увеличит счетчик.
Внутренняя текстура с символами освобождается и перезагружается текстурным менеджером.

Mikle
Теперь, думаю можно браться за простенький GUI...
Как думаешь что из элементов необходимо? Хотя бы окно, и кнопка?

#314
10:52, 29 дек. 2011

max255
> Теперь, думаю можно браться за простенький GUI...
> Как думаешь что из элементов необходимо? Хотя бы окно, и кнопка?
Какой самый распространённый элемент в играх? Что-то типа TreeView или DirListBox, только вместо папок - пункты и подпункты меню. Именно так делается меню в большинстве игр.

Страницы: 120 21 22 2326 Следующая »
Вело-изобретателиФорумMXEngine - движок для VB6

Тема в архиве.