Форум: "Игры";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
ВнизСмена разрешения на лету. Найти похожие ветки
← →
MrAngel (2004-06-03 23:52) [0]Сначала думал, что через IDirect3DDevice9::Reset, но не тут то было. Может кто подскажет, как это дело реализуется ?
← →
NailMan © (2004-06-04 15:52) [1]Мочишь девайс, переделываешь презент_параметерс и заново создаешь, а заодно и все ресурсы(текстуры, буферы и т.д.)
:-)
---
WBR, NailMan aka 2:5020/3337.13
← →
A22 (2004-06-04 18:25) [2]если будешь делать в VC++ с использованием их классов, то там имеется функция OnChangeDevice. Кажись, так ее звать
← →
MrAngel (2004-06-04 19:30) [3]2 NailMan © - да, есть такой вариант. Из мануала мелко софта вычитал. Неужели ничего менее маштабного нет? :-)
2 A22 - с использованием их классов ? Речь идёт про Frame Work ?
← →
NailMan © (2004-06-04 19:38) [4]MrAngel
К сожалению нет. Такова конструкция Direct3D.
---
WBR, NailMan aka 2:5020/3337.13
← →
NailMan © (2004-06-04 19:38) [5]MrAngel
К сожалению нет. Такова конструкция Direct3D.
---
WBR, NailMan aka 2:5020/3337.13
← →
MrAngel (2004-06-05 00:19) [6]Нуу - тогда легче закрыть приложение и открыть его с другими настройками :-)
← →
Vertex (2004-06-07 16:07) [7]2 MrAngel - неа это не FrameWork это Direct3D SDK
← →
NailMan © (2004-06-07 18:38) [8]Все уже давно перешли на внешние настройки параметров дисплея. Так что делай внешнюю DLL с настройками и не парься. ну незачем юзверю в процессе игры разрешение/битность менять.
---
WBR, NailMan aka 2:5020/3337.13
← →
MrAngel (2004-06-09 02:26) [9]2 Vertex ok посмотрю.
2 NailMan - можно по подробнее?
← →
NailMan © (2004-06-09 11:23) [10]MrAngel
Ну как делаешь DLL-ку, в ней делаешь форму(ы). Соответственно первая показываемая форма это "загрузчик" с предменю:
[ЗАПУСК ИГРЫ]
[НАСТРОЙКИ]
[ВЫХОД]
на фон формы делаем какой-нить скриншотик на тему нашей игрушки :-)
Далее вызов это формы делаем так:Function ShowLoader:Integer;
Var Form:TLoaderForm;
begin
Form:=TLoaderForm.create(nil);
try
Result:=Form.Execute;
finally
Form.Free;
end;
end;
А метод Execute выгляит так:Function TLoaderForm.Execute:integer;
begin
ECode:=0;
Showmodal;
Result:=ECode;
end;
Ну в этой форме на кнопочки вешаем следующее:procedure TLoaderForm.BitBtn1Click(Sender: TObject);
begin
ECode:=1;
Close;
end;
Юзер нажал запуск и возвращается значение 1.procedure TLoaderForm.BitBtn2Click(Sender: TObject);
begin
ShowMainOptions;
ECode:=1;
end;
Юзер нажал кнопку "Настройки" и вызываем показ формы настроек(типа процедура аналогичная по контенту ShowLoader.procedure TLoaderForm.BitBtn3Click(Sender: TObject);
begin
ECode:=2;
Close;
end;
Типа юзер нажал выхо(раздумал наверно играть).
Далее в DLL-ке экспортируешь только ShowLoader и в программу импортируешь Function ShowLoader:Integer; stdcall; external "наша_ДЛЛ-ка.dll";
И в начале программы делаешь такIf ShowLoader=2 then Exit;
Т.е. если юзер нажал выход, то выходим иначе ничего не делаем и программа выполняется как и было задумано.
А вот в самой форме настроек надо сделать комбобоксы всякие с разрешениями и обязательно все это сохраняем в файл настроек, которые уже самой игрой будут считываться и на основе них и создавать девайс.
В целом можно вообщ все настройки вынески на внешнюю форму, чтобы не геморриться с GUI. Все таки на нормальном VCL проще сделать подробные настройки нежели на ограниченном игровом GUI. Хотя как знать - часть настроек не связанных с пересозданием девайса можно и в самой игре реализовать, хотя бы в реализации консоли.
---
WBR, NailMan aka 2:5020/3337.13
← →
MrAngel (2004-06-09 19:10) [11]А - ясно я понял идею. Думаю так и буду делать.
← →
MrAngel (2004-06-09 19:11) [12]Thanks.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.051 c