Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   2D графический движок SR2D. (http://forums.kuban.ru/f1024/2d_graficheskij_dvizhok_sr2d-2208409.html)

Mikle Quits 15.02.2012 18:02

2D графический движок SR2D.
 
Хочу поделиться своей наработкой.
SR2D предназначен для использования при создании оконных 2D приложений. На настоящий момент SR2D состоит из модуля SR2D, класса Sprite и DLL - SR2D.dll. Для использования необходимо подключить к проекту указанные модуль и класс, а DLL разместить в папке проекта. Движок не использует для работы никаких API, кроме SetDiBitsToDevice, используемой для вывода изображения на экран (что значительно быстрее, чем Graphics). Он на 10% написан на C++ и на 90% на ассемблере с активным применением MMX.
Класс Sprite предназначен для хранения двумерного изображения с альфа каналом, различных его преобразований и отображения на форму PictureBox или просто битмэп.
Движок свободен для некоммерческого и коммерческого использования. Единственное условие - не переименовывать SR2D.dll.
Первоначально SR2D разрабатывался для применения под VB6, но сейчас я зарелизил уже третью версию, есть порты под VB6, C# и vb.net:
[url]http://tuapse-mikle.narod.ru/SR2D/SR2D.zip[/url]
[url]http://tuapse-mikle.narod.ru/SR2D/DPBM_CS.zip[/url]
[url]http://tuapse-mikle.narod.ru/SR2D/DPBM_NET.zip[/url]

Для C# и vb.net пример пока один - DPBM:

Примеры готовых игр:
[url]http://tuapse-mikle.narod.ru/BriX.zip[/url]
58 кБ.
[url]http://tuapse-mikle.narod.ru/FlyGame.rar[/url] (блиц игра, написана за 4 часа)
74 кБ.
Игры написаны ещё на SR2D 2.0 на VB6.

Mikle Quits 20.05.2012 16:12

Версия 3.2:
[url]http://tuapse-mikle.narod.ru/SR2D/DPBM_VB6.zip[/url]
[url]http://tuapse-mikle.narod.ru/SR2D/DPBM_NET.zip[/url]
[url]http://tuapse-mikle.narod.ru/SR2D/DPBM_CS.zip[/url]
1. В этой версии исправлен баг с сохранением в файл в Win7-64.
2. Изменён синтаксис команды LoadFromObject. Теперь она называется LoadFromIPicture, вместо параметра:

Source As Variantтеперь два параметра:
Src As IPicture, ByVal hDC As LongБлагодаря этому я избавился от позднего связывания, получил возможность грузить не только с PictureBox или Form, но и с любого контрола, не обладающего hDC, например с ImageBox. Вторым параметром можно передавать hDC формы или, к примеру, рабочего стола.
3. Добавилась процедура DrawLine. Меняя параметр DotStep, можно рисовать прерывистые линии, если установить параметр IsXor = True, то цвет будет получаться как Dest Xor Color. Если использовать Color = &H808080, то получается в любом случае цвет, контрастный с приёмником, если DrawLine с IsXor = True применить повторно, то приёмник полностью восстанавливается, можно не перерисовывать.

vxg 21.05.2012 08:12

...если делать XOR с цветом 0x808080 то получится тот же цвет. для цветов близких к 0x808080 нужна какая то другая процедура получения контрастных цветов... что нисколько не умаляет величины проделанной работы - просто прокомментировал, то что могу осмыслить)

Mikle Quits 21.05.2012 12:50

0x7f7f7f xor 0x808080 будет 0xffffff
0x818181 xor 0x808080 будет 0x010101
Да и на практике это проверено - линия контрастна на любом фоне.

orangemoon 21.05.2012 21:17

3 клас.

orangemoon 21.05.2012 21:21

всмысле, круто!

vxg 22.05.2012 09:03

3 - точно. это я про Not значит подумал)

Mikle Quits 06.09.2012 10:44

Приятная новость.
Разработчики FBSL - Freestyle Basic Script Language, портируют SR2D:
[url]http://www.fbsl.net/phpbb2/viewtopic.php?f=33&t=2812[/url]


Текущее время: 19:58. Часовой пояс GMT +3.