Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Corona SDK

Стварыце гульню Endless Runner / бясконца бяжыць чалавечак з нуля: Меню гульні

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Corona SDK: Build an Endless Runner Game From Scratch.
Build an Endless Runner Game From Scratch: Boss Battles
Build an Endless Runner Game From Scratch: App Store Publishing

Belarusian (беларуская мова) translation by Alex Grigorovich (you can also view the original English article)

Cардэчна запрашаем у апошнюю версію серыі Endless Runner.  У сённяшнім ўроку вы даведаецеся, як ствараць гульнявое меню з дапамогай класа Director. Давайце пачнем!

Віншуем вас з гэтай знамянальнай падзеяй! Мы доўга ішлі да гэтага дня, і цяпер у нас ёсць функцыянальная гульня і, спадзяюся, базавае разуменне таго, як дадаць свае ўласныя кампаненты для пашырэння функцыяналу.  Крок, які мы збіраемся зрабіць цяпер, - гэта дадаць маленькі ўзровень у сістэму меню, каб гульня выглядала больш паўнавартаснай.

Мы будзем выкарыстоўваць Director клас, які ўяўляе сабой невялікую, і адначасова, прафесійную бібліятэку Рыкарда Раубера, якая будзе рабіць усю працу за вас. Як толькі вы ўбачыце, наколькі гэта лёгка, вы зможаце хутка рэалізаваць свае самыя цікавыя ідэі.

Першае, што вам трэба зрабіць, гэта перайсці сюды і загрузіць апошнюю версію класа. Калі вы загрузіце, вы ўбачыце шмат файлаў. Director клас пастаўляецца з з іх вялікай колькасцю, уключае прыклады, шаблоны і дадатковыя функцыі, якія могуць палегчыць вашу жыццё, таму не саромейцеся вывучыць усё, што тут ёсць. Калі вам не патрэбныя ўсе гэтыя дапаўненні, вы можаце загрузіць толькі тыя файлы, якія патрэбныя нам для ўрока.

Цяпер, калі ў нас ёсць файл director.lua, змесціце яго ў тую ж тэчку, што і ваш main.lua. Гаворачы аб файле main.lua, перайдзіце да яго і пераназавіце. Усё роўна, якое імя вы яму прысвоілі, бо мы ўсё роўна яго пазней выдалім. Пасля гэтага стварыце тры новыя файла ў гэтай тэчцы. І назавіце іх main.lua, menu.lua і game.lua. Сутнасць таго, як гэта будзе працаваць, у тым, што main.lua будзе выкліканы для запуску гульні. Гэта будзе асновай нашай праграмы, у той час як menu.lua і game.lua будуць выступаць у якасці кампанентаў (displayGroups), якія адлюстроўваюцца разам з displayGroup ўнутры main.lua, амаль гэтак жа, як і ўсе іншыя групы ў нашай гульні, усё яны ўтрымліваюцца і адлюстроўваюцца на экране displayGroup ў нашай бягучай гульні.

Такім чынам, па-першае, давайце створым новы файл main.lua.  Адкрыйце яго і ўстаўце гэты код:

Вось і ўсё! Прыбярыце каментары, і вы ўбачыце, што для запуску director класа патрабуецца ўсяго 5 радкоў.  Як гаворыцца ў каментарах, спосаб, які сапраўды працуе, - main.lua запускаецца першым, але затым замест таго, каб працэс гульні быў вызначаны ў файле main.lua, мы дазваляем класу зрабіць гэта. Мы ствараем display.newGroup і захоўваем яго як асноўны выгляд. Таму, калі гульня сапраўды загружаецца, усё, што вы бачыце, фактычна праглядаецца з файла main.lua ўнутры гэтай групы. Выдатна, ці не так! Такім чынам, як толькі вы ствараеце ўяўленне, нам проста трэба сказаць класу Director, што сцэна будзе загружаная, і ён аўтаматычна перанясе нас туды. Зручна, праўда?

Наступнае, што нам трэба зрабіць, каб на самой справе ўсё працавала, - стварыць выгляд меню. Код сапраўды просты, большасць якога мы ўжо бачылі, таму я спачатку апублікую ўвесь файл, а затым растлумачу некалькі простых рэчаў. Давайце адкрыем menu.lua і паглядзім, як лёгка стварыць простую сістэму меню. Скапіруйце наступнае ў меню menu.lua:

Тут ёсць і сёе-тое новае director: changeScene().  Гэта працуе так, як вы сабе гэта ўяўляеце. Тым не менш, я хацеў пазначыць на другі параметр - downFlip. Ёсць шмат ўбудаваных пераходаў, якія могуць зрабіць вашу гульню вельмі прывабнай пры пераключэнні паміж сцэнамі, гэта залежыць ад таго, як вы хочаце, каб ваша гульня выглядала. Вось узор нашага прагрэсу.

Transition

Не забудзьцеся паспрабаваць некалькі розных пераходаў, каб знайсці той, які лепш за ўсё падыходзіць для вашай гульні. Вы можаце знайсці іх поўны спіс у файле director.lua. Паглядзіце усе розныя эфекты і дайце сваім ідэям волю.  Яшчэ некалькі прыкладаў, якія вы можаце паспрабаваць, але не жадаеце далёка капаць, - гэта crossfade "," overfromtop ", і" flipFromBottom, і гэта толькі некаторыя з іх! Такім чынам, акрамя гэтага, засталося зусім няшмат таго, чаго вы не бачылі раней. Усё гэта проста стварае прымітыўны экран галоўнага меню. Там ёсць пара рэчаў, якія вы павінны прыняць да ведама, што спатрэбіцца ў кожнай сцэне, якая патрэбна director. першае: Гэта усё

Лёгка і проста. Вам трэба, каб дакладная радок у верхняй частцы кожнага файла * .lua, а менавіта director выкарыстоўвалася ў якасці сцэны.  Пасля гэтага ў вас ёсць функцыя new (), якая выклікаецца пры ўваходзе ў сцэну, і ўсё, што вы хочаце, каб сцэна выконвала, гэта была уключанай. Першае, што вам трэба зрабіць, гэта адлюстраваць Object, які будзе вернуты да ўпраўляючага класу, які і будзе паказаны, а затым пераканайцеся што ён вярнуў значэнне ў канцы новай функцыі. Гэта ўсё. Гучыць проста?  Гэта насамрэч так!  Клас director сапраўды робіць усё прасцей. Пакуль вашыя выявы знаходзяцца справа ў меню, вы павінны запусціць файл main.lua і запусцім яго без якіх-небудзь праблем.

Да гэтага часу ў нас быў асноўны файл і файл меню. Апошняе, што нам трэба зрабіць, гэта ўнесці некаторыя змены ў гульнявой файл.  Гэта таксама будзе лёгка. Адкрыйце файл game.lua і дадайце наступны код:

Гэта тое, што вам трэба для сцэны. Дарэчы, гэта ўсё, што вам трэба, каб атрымаць ваш стары файл main.lua ў файл game.lua. Калі ён у вас ужо ёсць, адзінае, што вам трэба зрабіць, гэта скапіяваць ўвесь файл old.lua і ўставіць яго там, дзе сказана «уставіць код тут». Зрабіце гэта, і вы скончылі ...  почти! Мы збіраемся ўнесці некаторыя змены ў тое, як будзе адлюстроўвацца наша гульня над паведамленнямі. Замест таго, каб ствараць вялікую кнопку, мы вяртаемся ў меню. Давайце зменім тут сёе-тое (звярніце ўвагу, што файл gameOver.png быў зменены, гэта дасць яму магчымасць адпавядаць новаму размяшчэнню кнопак.  Памеры малюнка па-ранейшаму застаюцца такімі ж, таму вам не прыйдзецца рабіць ніякіх іншых карэкціровак). Першымі зменамі стануць новыя кнопкі ў гульні.

Дадайце гэты код туды, дзе мы дадамо ўсе астатнія выявы ў верхняй частцы файла:

Затым абавязкова дадайце іх і на экран. А таксама ў астатнія ўкладкі экрана:

Наступны этап - гэта пераход да функцыі touched() і выдаленне першага аператара if/else, вось так ён будзе выглядаць:

Робячы гэта, ён робіць функцыю touched той, якая толькі апрацоўвае нутрагульнявыя ўзаемадзеяння. Мы збіраемся перамясціць логіку, якая перазапускае гульню да яе ўласнай функцыі. Дадайце гэтыя функцыі ніжэй функцыі touched():

Такім чынам, даволі зразумела, гэтыя крокі мы рабілі ўжо некалькі разоў. Затым выдаліце ​​ніжнюю частку кода, дзе мы дадамо апрацоўшчыкі падзей і дадамо яшчэ два апрацоўшчыка:

Такім чынам, апошнія некалькі рэчаў, якія мы павінны зрабіць, гэта змяненне пазіцыі на дзве кнопкі, калі наш монстар памірае, і калі мы перазагружаем гульню. Вось дапаўненні, якія нам патрэбныя, каб пераканацца, што яны працуюць правільна. У функцыі restartGame() дадайце наступнае:

Затым перайдзіце да функцыі collisions check(), дзе вы павінны ўбачыць гэтыя радкі паўтараюцца некалькі разоў:

Дадайце гэты блок у любой яго асобнік (усяго павінна быць 4, па адным для кожнага шляху):

Пасля таго, як вы занясеце ўсе змены, вы павінны быць гатовыя запусціць гульню з файла main.lua і вярнуцца да гульні праз меню, загінуць, і затым выбраць ці вы хочаце працягнуць гульню ці выйсці ў меню. Такім чынам, калі ўсё добра, гэта канец, зараз у нас ёсць наша гульня. Мы рабілі ўсё вельмі хутка, вялікую частку часу. Калі ў вас узнікнуць якія-небудзь праблемы на любым этапе, дайце мне ведаць у каментарах, і я дапамагу вам з гэтым. Новая папка ў загружаным файле таксама змяшчае канчатковы прадукт, і таксама вы заўсёды можаце выкарыстоўваць яго ў якасці ўзору. Спадзяюся, гэтая серыя дапамагла вам у тым, што цяпер вы пачалі займацца распрацоўкай гульняў з дапамогай Corona SDK. Corona SDK з'яўляецца магутным і вельмі дружалюбным інструментам, калі вы асвоіце асновы. Спадзяюся, вы зможаце прасоўвацца наперад і ствараць розныя дзіўныя гульні.

У нас будзе яшчэ адзін урок у гэтай серыі, у ім мы не будзем мяняць гульню, а засяродзімся на адпраўкі вашай гульні ў краму прыкладанняў, паколькі гэта вялікая прыгода, калі вы робіце гэта ўпершыню.  Жадаю вам добрага коду і дзякуй за чытанне!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.