Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

Problema s zagruskoi bitmap-ov is   Найти похожие ветки 

 
Delphi 5.01   (2002-08-28 18:51) [0]

Privetstvuiu vsex game makerov! Pomogite razobratsa v probleme!

U mena est tipa kod

...
var FLogoImage1 : IDirectDrawSurface7;
...
FLogoImage1:=DDLoadBitMap(FDirectDraw,"Logo1.bmp",0,0);
...
tak nujno zagrujat images v Surface no chto delat esli image-i ne faili a naxodatsa v resursovom faile, kak zagrujat bitmap ponatno no vot v DirectX kak zagruzit bitmap?

v delphi bez directa delau sleduiushee
...
var AModule: THandle;
...
AModule := LoadLibrary("button.res");
Bitmap.LoadFromResourceName(AModule,<названиекартинки1>);
FreeLibrary(AModule);
...

i fotka zagruzilas b BitMap a kak sdelat toje samoe no zafruzit fotku ne v BitMap a v "FLogoImage1"?


 
Ev_genus ©   (2002-08-28 19:29) [1]

Вот этот код находится в начале DDLoadBitMap

//
// Try to load the bitmap as a resource, if that fails, try it as a file
//
hbm := LoadImage(GetModuleHandle(nil), szBitmap, IMAGE_BITMAP, dx, dy, LR_CREATEDIBSECTION);
if hbm = 0 then
begin
hbm := LoadImage(0, szBitmap, IMAGE_BITMAP, dx, dy, LR_LOADFROMFILE or LR_CREATEDIBSECTION);
end;
if hbm = 0 then
begin
Result := nil;
Exit;
end;

Закоментированная надпись гласит:"процедура пытается загрузить картинку из ресурсов, если это невозможно то из файла". Просто вместо имени файла укажи название картинки.


 
Delphi 5.01   (2002-08-29 08:06) [2]

Izveni, no ia nachinaushi i eto moia pervaia igra na drectx, ia ne sovsem ponal, bolee pravilnei ne nashol gde mne nado ukazat v procedure ima moego resursnogo faila, "buttob.res". iskrene budu blagodaren esli obiasnish.
Ogromnoie spasibo za pomosh!


 
Mirovodin ©   (2002-08-29 10:44) [3]

Читай статьи :

http://delphigfx.mastak.ru/2d/014/2d_14.htm и
http://delphigfx.mastak.ru/2d/015/2d_15.htm


 
Delphi 5.01   (2002-08-29 11:56) [4]

Spasibo esli budut voprosi to orashus k vam!
spasibo!


 
Delphi 5.01   (2002-08-29 12:00) [5]

Vso Ok no vezde ukazivaetsa kak zagrujat v bitmap a mne nujno ne v bitmep a v PrimarySurface.
Vozmojno ia oshibaus no me kajetsa IDirectDrawSurface7 i TBitMap eto raznie tipi!
Pojaluista obiasnite esli ia oshibaus!
Spasibo!


 
Ev_genus ©   (2002-08-29 12:42) [6]

Для добавления файла ресурсов к проекту нужно использовать дериктиву компилятора $R. Например:
{$R buttob.res} или
{$R *.res}.
И всё. Все ресурсы из егого файла(ов) будут доступны для чтения под теми именами, под которыми их туда запхали.

Vozmojno ia oshibaus no me kajetsa IDirectDrawSurface7 i TBitMap eto raznie tipi!

TBitMap хранит картинку вместе с свойствами. Способ хранения зависит от битрейта картинки (количества цветов)

IDirectDrawSurface7 хранит спрайт(картинка с прозрачным цветом). Его размер зависит от, установленного при инициализации DirectDraw, битрейта экрана.


 
Delphi 5.01   (2002-08-29 13:11) [7]

1)
{$R buttob.res} или
{$R *.res}.

mena ne ustraivaet, v etom sluchae vso budet kompilirovatsa v odin faisl, a vot mne nujno imet res fail i kogda ponadobitsa vot togada i zagruzit, chto i delaet primer

...
var AModule: THandle;
...
AModule := LoadLibrary("button.res");
Bitmap.LoadFromResourceName(AModule,<названиекартинки1>);
FreeLibrary(AModule);
...

2)
Esli ia vas pravilno ponal to ia mogu delat sleduishe

PrimarySurface:=LoadImage(GetModuleHandle(nil), szBitmap, IMAGE_BITMAP, dx, dy, LR_CREATEDIBSECTION);

esli da to gde ima kartinki i ima faila resursov (ai dumau vi zagrujaesh iz exe faila, kak ia govoril mna eto ne ustraivaet).

3)
Est li tipa takogo
PrimarySurface.LoadFromResourceName(AModule,<названиекартинки1>);
????

4)
ili podskajite luboi logki metot skritia faila ot usera, chtob on ne mog ego otkrit i uvidet chto tam, nu i potom kak zagruzit ego v PrimarySurface!

5)
u mena est odin variant, mojno vse zashifrovat BMP file, no togda pri zapuske nujno iego, kajdi raz razshifrovivat + ia ne zastraxovan ot togo chto v etot moment user otkluchet progu i ia ne uspeu steret razshifrovoni fail!

6)
na posledok, problema teoreticheski ne trudnaia, vse delaut kak to!

Spasibo!



 
Ev_genus ©   (2002-08-29 13:33) [8]

Если надо файл ресурсов хранить отдельно от исполняемого, то читай статьи Мироводина. Для такой проблемы простые ресурсные файлы не подойдут.

Нет можно только так
PrimarySurface:=DDLoadBitMap(FDirectDraw,"<названиекартинки1>",0,0);

TBitMap и IDirectDrawSurface7 - совсем разные типы. Совместимость только через блитинг одного на другой.


 
Delphi 5.01   (2002-08-29 13:44) [9]

Spasibo, togda budu shifrofat pervie 100 baitov BMP faila etogo dostatochno, chtob ego user ne smog uvidet!



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
6-28974
Друпи
2002-10-02 23:41
2003.02.10
SMS


1-28805
d_oleg
2003-01-29 21:10
2003.02.10
TBitBtn и Xp themes


14-29078
REA
2003-01-25 12:41
2003.02.10
Мастер - это круто


14-29099
Думкин
2003-01-25 10:32
2003.02.10
Думкин день


14-28986
PavelOKES
2003-01-22 14:28
2003.02.10
Как обновить настройки IE?