Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2007, 13:47   #11
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
По умолчанию

Kostia большое спасибо за объяснение Если у вас будет свободное время, можете написать статью по этой теме и разместить здесь ProgrammersInfo.
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 23.11.2007, 22:26   #12
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию Ох ты, сложновато..

Мде, лес густой просто , ...подозревал, что с DirectX намучиешься со всеми настройками, но чтобы на столько. Благо модуль упрощает задачу. Тут попробовал переключить в режим 1024х768x32bit, моргание по всему экрану, скорее всего в функции function WindowProc(wnd: HWND; Msg: Integer; wParam: wParam; lParam: lParam): Lresult; stdcall; что-то непрописано, в часности вот это пустует:
WM_PAINT:
begin

end;


...очевидно туда нужно то же, что в примере InitDirectDraw?
это помогает:

ClearSurface(backsurf, 0);
primsurf.Flip(nil, DDFLIP_WAIT);
exit;
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 24.11.2007, 11:50   #13
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию Правила рисования на поверхности

ClearSurface(backsurf, 0); // Эта процедура чистит задний буфер
primsurf.Flip(nil, DDFLIP_WAIT); // а эта выводит его на экран
exit;

Процедуру очистки можно ставить либо в самом начале цикла(основной игровой цикл) либо после primsurf.Flip(nil, DDFLIP_WAIT);, а между ними нужно рисовать.

Почему так?
Всё просто. Вы построили кадр, вывели его, затем вам нужно построить новый кадр, а для этого нужно удалить всё что было нарисовано до этого в буфере, а делается это его закраской (ClearSurface(backsurf, 0); или полной перерисовкой буфера).

Расчеты лучше всего проводить до рисования.

Последний раз редактировалось Kostia; 24.11.2007 в 11:59.
Kostia вне форума Ответить с цитированием
Старый 24.11.2007, 12:30   #14
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию Как сделать анимацию!

Все предельно просто!
В процедуре bltfast 4-й парамет определяет облать выводимой картинки.
А в процедуре blt это 3-й параметр.
Пример:
Вложения
Тип файла: rar Еxample.rar (107.1 Кб, 41 просмотров)
Kostia вне форума Ответить с цитированием
Старый 25.11.2007, 20:24   #15
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
По умолчанию

2 Kostia не мог бы рассказать с чего начать работу с DSound? Если можно примерчик
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 26.11.2007, 17:07   #16
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
Сообщение Sound

Держи! Тут доработанный модуль DDfunc и пример воспроизведения звука.
Вложения
Тип файла: rar DS.rar (38.8 Кб, 25 просмотров)
Kostia вне форума Ответить с цитированием
Старый 22.03.2008, 16:10   #17
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Если появятся вопросы по использованию DirectDraw, то задавайте их в этой теме.
загрузка и способ вывода картинок
http://develprog.ucoz.ru/_fr/0/Open_...aw_Picture.rar (73kb)
способ добраться до отдельных точек и изменить их цвет
http://develprog.ucoz.ru/_fr/0/addition.rar (14kb)
модуль DirectDraw.pas
http://develprog.ucoz.ru/_fr/0/Common.rar (41kb)

DirectDraw очень медленная штука, но он быстрее GDI. Если вы соберетесь делать простенькую 2D игру, то используйте DirectDraw, если вам потребуется реализовать мощные спецэффекты, то лучше использовать direct3d!
Kostia вне форума Ответить с цитированием
Старый 22.03.2008, 18:26   #18
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Т.е. если нужна крутая обработка в 2D , эффекты типа Фотошопного пост-обработчика, то direct3d по любому справится быстрее чем DirectDraw ...я правильно понимаю?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 22.03.2008, 19:13   #19
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Beermonza, да, ты правильно понимаешь. В DirectDraw используется обычный блитинг, перестановка битов с одного участка памяти на друго, это достаточно медлено, тем более продумать хороший спецэффект в direct3d гораздо проще, чем в DirectDraw.
В Direct3D вы задаете вершины объекта и натягиваете на него текстуру. Можно добиться очень красивых эффектов: повороты, полупрозрачность, морфинг, частичная полупрозрачность... . И скорость при этом почти не изменится!
Но DirectDraw пойдет почти на всех видеокартах, а вот с Direct3D могут возникнуть проблемы, но они вполне решаемые!
Плюс Direct3D в том, что его проще понять и выучить, т.к. там имеются изначально функции для загрузки текстур разных форматов(bmp,jpg,png,tga,dds), для загрузки 3D моделей из *.x и многое друго.
Kostia вне форума Ответить с цитированием
Старый 23.03.2008, 17:00   #20
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Понятно, спасибо.
У меня есть несколько примеров Direct3D, даже на ноутбуке с его неполноценной "видеокартой" все работает, ...в принципе, ничего сложного. Что меня в 2D больше привлекает, так это отсутствие кубизма, гладкие, плавные очертания объектов, ...безграничное качество текстур (всегда полное), даже киношное качество (нужно постараться), а если игра от 3-го лица, то и смысла в 3D я не вижу, ...все это прекрасно реализуемо в 2D, нужно лишь подумать.
Напротив, можно только догадываться какой мощности потребуется машина, чтобы реализовать все это в 3D, если каждый кадр игры сравним с рендерингом отдельного статического изображения скажем в 3ds Max или SoftImage. Жуткое зрелище можно наблюдать
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подключение DirectDraw g@mbler Общие вопросы Delphi 1 09.11.2006 20:18