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

MXEngine.NET

#0
14:52, 18 дек. 2012

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

Текущее состояние проекта: Config, Graphics

logo | MXEngine.NET

Graphics: DX9, в дальнейшем возможно DX10, DX11
Sound: Пока нет

API: NINI, SlimDX

Версия для VB6 - ТУТ

Последняя версия движка: [url=""]Пока нет[/url]

Текущие работы:

+ Описание модулей

Этот пост будет постоянно обновляться...

#1
15:38, 18 дек. 2012

В данный момент пилю 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

#2
19:28, 18 дек. 2012

EventManager в .Net языке где есть делегаты, да вы должно быть шутите, зачем это?

#3
23:17, 18 дек. 2012

SoulSharer
> EventManager в .Net языке где есть делегаты, да вы должно быть шутите, зачем
> это?
Там все и работает через делегаты...

А зачем вообще движок? Есть же 1\0 и ассемблер?

Нужно для удобства, чтоб не запутываться в игровой логике + на нем же планирую организовать вызов обработки рендера и клавиатуры на разных частотах...

event_element = Manager.Add("Hello", Events.EventMode.Repeat, New TimeSpan(0, 0, 0, 0, 1000))

Можно на ты.
#4
15:07, 14 янв. 2013

Текущее направление - настройки... Их надо где-то хранить...
Была выбрана свободная библиотека NINI.

 [Глобальные интерфейсы]                  [Основной класс движка Engine]
 [   MainLog           ] <-инициализация- [                            ]
 [   MainConfig        ]                  [                            ]
        |
        | инициализация класса сохраненными настройками
        |
 [Класс Device         ]
 [ Element             ]
 [                     ]

Класс MainConfig выступает в роли "сервера" ini(xml) файла. Доступ к настройкам можно получить
через класс "клиент" - класс Element который работает с группой записей в ini(xml) файле.

В итоге каждый класс или модуль движка может иметь свои настройки и хранить их в своей группе ini(xml) файла.

#5
16:36, 14 янв. 2013

max255
А какой порт DX использовал, SlimDX, SharpDX?

#6
16:40, 14 янв. 2013

Mikle
SlimDX

#7
12:46, 15 янв. 2013

Необходимо определится как использовать SlimDX... Выносить ли его структуры и классы за пределы движка для использования в приложении пользователя или делать свои контейнеры. К примеру ту же математику или к примеру классы-коллекции адаптеров и разрешений экрана?

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

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