Qanday qilib Layer, move va Grafikni old tomonga keltiring

Grafika bilan ishlov berish uchun Corona SDK dan foydalanish

Corona SDK'dagi grafikani yaratish, boshqarish va boshqarishning asosiy komponenti ekran ob'ektidir. Ushbu ob'ektdan faylni rasmni ko'rsatish uchungina ishlatish mumkin emas, balki, eng muhimi, sizning tasvirlaringizni bir joyga to'plash imkonini beradi. Bu esa, bir vaqtning o'zida bir nechta grafika to'plamini bir vaqtning o'zida va bir-birining yuqori qismidagi qatlamli grafikalarni ko'chirish imkonini beradi.

Ushbu dars sizga loyihadagi grafik moslamalarni tashkil qilish uchun ekran guruhlaridan foydalanish asoslarini o'rgatadi. Bu ikkita qatlamni tashkil qilish orqali namoyon bo'ladi, biri odatdagi ekranni ifodalaydi, ikkinchisi modal qatlamni uning ustiga joylashtiriladi. Grafiklarni qatlamlashdan tashqari, biz barcha modal guruhni ko'chirish uchun o'tish ob'ektidan ham foydalanamiz.

Qanday qilib ilovangizni bozorga chiqarish

Eslatma: Ushbu qo'llanmaga rioya qilish uchun siz ikkita rasm kerak: image1.png va image2.png. Bu siz tanlagan har qanday rasm bo'lishi mumkin, lekin 100 piksel atrofida tasvirlaringiz 100 pikselga teng bo'lsa, o'rganuvchi sizga eng yaxshi ishlaydi. Bu sizga tasvirlarga nima bo'lganini osongina ko'rish imkonini beradi.

Boshlash uchun, main.lua deb nomlangan yangi faylni ochamiz va kodni tuzamiz:

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

Kodning ushbu qismi bizning kutubxonamizni o'rnatadi va ekran guruhlari orqali ko'rsatiladi: displayMain, displayFirst and displaySecond. Biz ularni grafikalarimizning birinchi qatlamidan foydalanamiz va keyin ularni ko'chiramiz. Harakatni ko'rish uchun global_move_x o'zgaruvchisi displeyning kengligining 20% ​​ga o'rnatiladi.

funktsiya setupScreen () displayMain: insert (displayFirst); displayMain: qo'shish (displaySecond); displayFirst: toFront (); displaySecond: toFront (); local background = display.newImage ("image1.png", 0,0); displayFirst: qo'shing (fon); local background = display.newImage ("image2.png", 0,0); displaySecond: qo'shish (fon); oxiri

SetupScreen vazifasi asosiy ekran guruhiga ekran guruhlarini qanday qo'shish kerakligini ko'rsatadi. Bundan tashqari, turli grafik qatlamlarni o'rnatish uchun toFront () funktsiyasidan foydalanamiz.

Ushbu misolda displayFirstni old tomonga ko'chirish kerak emas, chunki u sukut dispositionSecond guruhining ostida bo'lishi kerak, lekin har bir ekran guruhini aniq ajratish odatiga moslashish yaxshi bo'ladi. Ko'pgina loyihalar ikkitadan ortiq qatlam bilan yakunlanadi.

Har bir guruhga rasm qo'shdik. Ilovani boshlaganimizda, ikkinchi rasm birinchi tasvirning tepasida bo'lishi kerak.

funktsiya screenLayer () displayFirst: toFront (); oxiri

Grafikalarimizni ekranning birinchi qismida displaySecond guruhi bilan qatlamladik. Ushbu funktsiya displayFirst-ni oldinga siljiydi.

vazifasi moveOne () displaySecond.x = displaySecond.x + global_move_x; oxiri

MoveOne funksiyasi ikkinchi tasvirni ekran kengligining 20% ​​ga o'ngga siljitadi. Ushbu funktsiyani chaqirganda, displeyning ikkinchi guruhi ekranning birinchi qismida bo'ladi.

funktsiya moveTwo () displayMain.x = displayMain.x + global_move_x; oxiri

Harakatning ikki funktsiyasi ikkita tasvirni ekranning kengligining 20 foizidan o'ngga ko'chiradi. Biroq, har bir guruhni alohida-alohida ko'chirishning o'rniga, ikkalasini ham bir vaqtning o'zida ko'chirish uchun DisplayMain guruhidan foydalanamiz. Bu juda ko'p displey guruhlarini o'z ichiga olgan bir guruhni bir vaqtning o'zida bir nechta grafikani boshqarish uchun ishlatilishi mumkinligi haqidagi ajoyib misol.

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

Ushbu kodning oxirgi biti ushbu funktsiyalarni bajarishda nima sodir bo'lishini ko'rsatadi. Ilova ishga tushirilgandan keyin har soniyada funksiyalarni yoqish uchun timer.performWithDelay funksiyasidan foydalanamiz. Agar ushbu funktsiyani bilmagan bo'lsangiz, birinchi o'zgaruvchining muddati kechikish vaqtini millisekundlarda ifodalaydi, ikkinchisi esa kechiktirilgandan keyin bajarish kerak bo'lgan vazifadir.

Ilovani ishga tushirganingizda, image1.png sahifasining yuqori qismida image2.png bo'lishi kerak. ScreenLayer funksiyasi yong'in chiqadi va oldinga rasm1.png olib keladi. MoveOne funktsiyasi image1.png ostidan image2.png faylini ko'chiradi va ikkala tasvirni bir vaqtning o'zida harakatlantiruvchi "moveTwo" funktsiyasi oxirgi marta o'chadi.

Sekin-asta iPadni aniqlash

Ushbu guruhlarning har birida o'nlab tasvirlar bo'lishi mumkinligini yodda tutish muhimdir. Harakatning ikki funktsiyasini bir qator kod bilan almashtirgani kabi, guruhdagi barcha tasvirlar guruhga berilgan buyruqlarni oladi.

Texnik sifatida, displayMain guruhida ikkita displey guruhlari va uning ichida joylashgan tasvirlar bo'lishi mumkin. Shu bilan birga, ba'zi guruhlarni namoyish qilish kabi yaxshi tashkilot, yaxshi tashkilotni tashkil qilish uchun biron-bir tasvirsiz boshqa guruhlar uchun konteyner sifatida harakat qilishdir.

Ushbu qo'llanma ekran ob'ektidan foydalanadi. Ko'rish obyekti haqida ko'proq bilib oling.

Qanday boshlanadi? IPad ilovalarini ishlab chiqish