Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
3-28598
sumrak
2003-01-21 03:35
2003.02.10
Поле money


7-29130
aspen
2002-12-06 11:40
2003.02.10
аналог функции portw[] из паскаля?


1-28695
Lexa
2003-01-31 12:54
2003.02.10
Утечка памяти


14-29071
zzet
2003-01-23 23:33
2003.02.10
Что такое


14-29062
Maximator Vetera
2003-01-24 21:11
2003.02.10
Внезапно мне предложили сделать сайт.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский