Решил полностью переписать все под .NET
В этой теме буду складывать текущие наработки :3
Текущее состояние проекта: Config, Graphics

Graphics: DX9, в дальнейшем возможно DX10, DX11
Sound: Пока нет
Версия для VB6 - ТУТ
Последняя версия движка: [url=""]Пока нет[/url]
Текущие работы:
Этот пост будет постоянно обновляться...
В данный момент пилю EventManager.
Вот пример работы:
Private Manager As New Events.EventManager
Sub Main()
Dim event_element As Events.EventElement
event_element = Manager.Add("Hello", Events.EventMode.Repeat, New TimeSpan(0, 0, 0, 0, 1000))
event_element.Add(AddressOf YaFunc1, 0) 'приоритет 0
event_element.Add(AddressOf YaFunc2, 1) 'приоритет 1
event_element.Refs.Sort()
event_element.Enable = True
Do While (True)
Manager.Update()
Loop
End Sub
Public Sub YaFunc1()
Console.WriteLine(Date.Now.ToString("ss.ffffff") & " Hello world, i first")
End Sub
Public Sub YaFunc2()
Console.WriteLine(Date.Now.ToString("ss.ffffff") & " Hello world, i next")
End SubРезультат:
|00.000000 Hello world, i first |00.000000 Hello world, i next |01.000000 Hello world, i first |01.000000 Hello world, i next |02.000000 Hello world, i first |02.000000 Hello world, i next
EventManager в .Net языке где есть делегаты, да вы должно быть шутите, зачем это?
SoulSharer
> EventManager в .Net языке где есть делегаты, да вы должно быть шутите, зачем
> это?
Там все и работает через делегаты...
А зачем вообще движок? Есть же 1\0 и ассемблер?
Нужно для удобства, чтоб не запутываться в игровой логике + на нем же планирую организовать вызов обработки рендера и клавиатуры на разных частотах...
event_element = Manager.Add("Hello", Events.EventMode.Repeat, New TimeSpan(0, 0, 0, 0, 1000))
Можно на ты.
Текущее направление - настройки... Их надо где-то хранить...
Была выбрана свободная библиотека NINI.
[Глобальные интерфейсы] [Основной класс движка Engine]
[ MainLog ] <-инициализация- [ ]
[ MainConfig ] [ ]
|
| инициализация класса сохраненными настройками
|
[Класс Device ]
[ Element ]
[ ]
Класс MainConfig выступает в роли "сервера" ini(xml) файла. Доступ к настройкам можно получить
через класс "клиент" - класс Element который работает с группой записей в ini(xml) файле.В итоге каждый класс или модуль движка может иметь свои настройки и хранить их в своей группе ini(xml) файла.
max255
А какой порт DX использовал, SlimDX, SharpDX?
Mikle
SlimDX
Необходимо определится как использовать SlimDX... Выносить ли его структуры и классы за пределы движка для использования в приложении пользователя или делать свои контейнеры. К примеру ту же математику или к примеру классы-коллекции адаптеров и разрешений экрана?
Тема в архиве.