Як Layer, Move і Прывесці графікі на пярэдні план

Выкарыстанне Corona SDK для Маніпуляванне графікі

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

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

Як прадаць Ваш App

Заўвага: Для таго , каб прытрымлівацца разам з гэтым кіраўніцтвам, вам спатрэбіцца два малюнка: image1.png і image2.png. Гэта могуць быць любыя выявы , якія вы выбіраеце, але падручнік будзе працаваць лепш , калі ў вас ёсць выявы каля 100 пікселяў на 100 пікселяў. Гэта дазволіць вам лёгка ўбачыць , што адбываецца з малюнкамі.

Для таго, каб прыступіць да працы, мы адкрыем новы файл з імем main.lua і пачаць будаваць наш код:

displayMain = display.newGroup (); displayFirst = display.newGroup (); displaySecond = display.newGroup (); global_move_x = display.contentWidth / 5;

Гэты падзел кода ўсталёўвае нашу бібліятэку карыстацкага інтэрфейсу і аб'яўляе праз дысплей групы: displayMain, displayFirst і displaySecond. Мы будзем выкарыстоўваць іх для першага пласта нашай графікі, а затым перамясціць іх. Пераменная global_move_x усталёўваецца на 20% ад шырыні дысплея, таму мы можам бачыць рух.

Функцыя setupScreen () displayMain: устаўка (displayFirst); displayMain: устаўка (displaySecond); displayFirst: toFront (); displaySecond: toFront (); мясцовы фон = display.newImage ( "image1.png", 0,0); displayFirst: устаўка (фон); мясцовы фон = display.newImage ( "image2.png", 0,0); displaySecond: устаўка (фон); канец

Функцыя setupScreen дэманструе, як дадаць групы адлюстравання ў асноўнай групе адлюстравання. Мы таксама выкарыстоўваем функцыю toFront () для налады розных графічных слаёў, са пластом мы хочам на вяршыні ўсё часу абвешчанага ў мінулым.

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

Мы таксама дадалі малюнак у кожнай групе. Калі мы пачынаем дадатак, то другі малюнак павінна быць на вяршыні першага малюнка.

функцыянаваць screenLayer () displayFirst: toFront (); канец

Мы ўжо слаістай нашу графіку з групай displaySecond на вяршыні групы displayFirst. Гэтая функцыя будзе рухацца displayFirst на фронт.

Функцыя moveOne () displaySecond.x = displaySecond.x + global_move_x; канец

Функцыя moveOne будзе рухацца другі малюнак направа на 20% ад шырыні экрана. Калі мы называем гэтую функцыю, група displaySecond будзе ззаду групы displayFirst.

функцыянаваць moveTwo () displayMain.x = displayMain.x + global_move_x; канец

Функцыя moveTwo будзе рухацца абодва малюнка направа на 20% шырыні экрана. Аднак, замест таго, каб рухацца кожную групу ў асобнасці, мы будзем выкарыстоўваць групу displayMain, каб перамясціць іх абодвух у той жа самы час. Гэта выдатны прыклад таго, як дысплей група, якая ўтрымлівае некалькі груп адлюстравання можа быць выкарыстана для маніпулявання шмат графік адразу.

setupScreen (); timer.performWithDelay (1000, screenLayer); timer.performWithDelay (2000, moveOne); timer.performWithDelay (3000, moveTwo);

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

Калі вы запускаеце дадатак, вы павінны мець image2.png зверху image1.png. Функцыя screenLayer будзе спрацоўваць і прынесці image1.png на фронт. Функцыя moveOne будзе рухацца image2.png з-пад image1.png, а функцыя moveTwo будзе спрацоўваць нарэшце, перамяшчаць абодва малюнка адначасова.

Як выправіць павольны IPad

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

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

Гэты падручнік выкарыстоўвае для экраннага аб'екта. Больш падрабязна аб аб'екце адлюстравання.

Як пачаць распрацоўку IPad прыкладання