![]() |
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. |
Версия 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 применить повторно, то приёмник полностью восстанавливается, можно не перерисовывать. |
...если делать XOR с цветом 0x808080 то получится тот же цвет. для цветов близких к 0x808080 нужна какая то другая процедура получения контрастных цветов... что нисколько не умаляет величины проделанной работы - просто прокомментировал, то что могу осмыслить) |
0x7f7f7f xor 0x808080 будет 0xffffff 0x818181 xor 0x808080 будет 0x010101 Да и на практике это проверено - линия контрастна на любом фоне. |
3 клас. |
всмысле, круто! |
3 - точно. это я про Not значит подумал) |
Приятная новость. Разработчики FBSL - Freestyle Basic Script Language, портируют SR2D: [url]http://www.fbsl.net/phpbb2/viewtopic.php?f=33&t=2812[/url] |
Текущее время: 19:58. Часовой пояс GMT +3. |