(Начинаещи) Често задавани въпроси, FAQ - прочети преди да питаш! [В тази тема поства само екипа] |
Здравейте ( Вход | Регистрация )
(Начинаещи) Често задавани въпроси, FAQ - прочети преди да питаш! [В тази тема поства само екипа] |
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 и т.н.). |
|
|
Олекотена версия | Час: 21:47:34, 18.05.24 |