GMC Bulgaria

Здравейте ( Вход | Регистрация )

(Начинаещи) Често задавани въпроси, FAQ - прочети преди да питаш! [В тази тема поства само екипа]
Vidi
коментар 16:36:08, 25-July-2005, Monday
Коментар #1


Administrator
Икона на група

Група: Администратор
Коментари: 115
Регистриран: 13.11.04
Град: Varna
Потребител № 1



Въпрос: Как да направя така, че екрана да следи героя ми?
Отговор:
В таба Views на Room properties трябва да настроите следните опции.
Enable the use of Views - Това позволява използването на views в стаята и трябва да бъде включено.
Visible when room starts - Това стартира избраното от списъка view (включете тази опция само за view 0).
W, H (View in room) - Ширината и височината на view-то.
Object following - Обекта, който view-то ще следва.
HBor, VBor - Рамките на view-то.
След като включите Enable the use of views и Visible when room starts, попълнете W и H (в View in room). Изберете обекта на героя в Object following. Разделете W на 2 и впишете резултата в HBor, а за VBor разделете H на 2.

Въпрос: Как се използват ресурси от външен файл (по време на игра)?
Отговор:
Ресурсите, при които най-често се използва тази техника са спрайтове, звуци, фонове. За да използваме външен файл като ресурс има два начина. Първия е като създадем ресурса и посочим външния файл, който да се зареди. Втория начин е като имаме вече съществуващ ресурс и заместим съдържанието му с съдържанието на външния файл.
Като за начало трябва да се направи обект, който да седи в първоначалната стая на играта. Той ще зарежда ресурсите. В събитието Game Start (others > game start) ще поставим няколко функции за извикване на външен файл в ресурс.
За спрайтове:
Първия начин - добавяне на спрайт.
Код
//sprite_add(fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig);
sp_pic1=sprite_add("data\sprites\spr001.bmp",1,true,true,false,true,0,0);

Забележете, че функцията връща индекса на бъдещия спрайт. При изпълняването на този код, Game Maker ще се създаде спрайт с индекс "sp_pic1", като зареди образа от файла "spr001.bmp" (в папките data\sprites).
За аргумента imgnumb - ако е 1 ще е спрайт с един под-образ, а за анимирани файлове (*.gif) този аргумент не се взима под внимание.
Но, за първия начин спрайта "sp_pic1" не трябва да съществува, в противен случай трябва да използваме втория начин - заменяне на съдържанието на спрайта.
Код
//sprite_replace(ind,fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig);
sprite_replace(sp_pic1,"data\sprites\spr001.bmp",1,true,true,false,true,0,0);

В този случай спрайта трябва да съществува, а индекса на спрайта е първия аргумент в самата функция. Останалото си е същото.
Може да използваме sprite_replace, като направим празен спрайт и после заредим образа от външен файл.
Ако искаме да проверим дали определен спрайт съществува може да ползваме sprite_exsists(ind) в съчетание с if. По този начин може да съчетаем двата начина - ако не съществува спрайт да го създадем, а ако съществува - да използваме втория, за да го заменим съдържанието.
Код
if (sprite_exists(sp_pic1)) {sprite_replace(sp_pic1,"data\sprites\spr001.bmp",1,true,true,false,true,0,0);}
else {sp_pic1=sprite_add("data\sprites\spr001.bmp",1,true,true,false,true,0,0);}

За звуци:
Пак може по два начина (с sound_add и sound_replace)... Ето примерния вид на функциите:
Код
//Първи начин
//sound_add(fname,kind,preload);
sound0=sound_add("data\sounds\sound0.mid",1,true);
//Втори начин
//sound_replace(index,fname,kind,loadonuse);
sound_replace(sound0,"data\sounds\sound0.mid",1,true);

Тука е ясно всичко... само за kind е по-специално: 0 е normal sound; 1 е background sound; 2 e 3d sound; 3 e multimedia player.
За фонове:
Пак може по два начина (background_add, background_replace)... Ето примерния вид на функциите:
Код
background_add(fname,transparent,smooth,preload);
back0=background_add("data\backs\back0.jpg",false,false,false);
background_replace(ind,fname,transparent,smooth,preload);
background_replace(back0,"data\backs\back0.jpg",false,false,false);


----------
Темата се редактира само от екипа на форума.
Ако смятате определен въпрос за достатъчно популярен, моля известете ме (чрез PM/ICQ/Email/Skype и т.н.).
Go to the top of the page
 
+Quote Post

Пишете в тази тема


Closed TopicStart new topic
1 потребител(и) четат тази тема (1 гости и 0 скрити)
0 Потребител(и):

 



Олекотена версия Час: 21:47:34, 18.05.24