كورونا SDK: إنشاء لعبة لفة دحرجة سريعة-الخطوات النهائية
Arabic (العربية/عربي) translation by Saadkhaled (you can also view the original English article)
مرحبا بك إلى الدرس التعليمي النهائي في سلسلة لعبتنا "اللفة السريعة" ! في هذا الدرس التعليمي، سوف نتعامل مع حركة اللاعب والاصطدامات، والخطوات اللازمة لبناء التطبيق النهائي.
حيث توقفنا...
يرجى التأكد من التحقق من الجزء 1 والجزء 2 من السلسلة لتفهم تماما هذا الدرس التعليمي.
الخطوة 1: حركة اللاعب
اللاعب يُدفع للاسفل بواسطة متغير موفيسبيد -moveSpeed-.
function update(e) -- Player Movement player.y = player.y + moveSpeed
الخطوة 2: حركة الكتل
المتغير موفيسبيد يؤثر على الكتل أيضا، في الاتجاه المعاكس.
for i = 1, blocks.numChildren do -- Blocks Movement blocks[i].y = blocks[i].y - moveSpeed end
الخطوة 3: تحديث النتيجة
نتيجة اللعبة ترفع كل الأطر, وهذا الكود البرمحي يغير حقل النص
-- Score score = score + 1 scoreTF.text = score
الخطوة 4: فقدان الأرواح
إذا وصل اللاعب إلى اعلى المرحلة، تتم إزالة روح
-- Lose Lives if(player.y > display.contentHeight or player.y < -5) then player.x = blocks[blocks.numChildren - 1].x player.y = blocks[blocks.numChildren - 1].y - player.height lives = lives - 1 livesTF.text = 'x' .. lives end
الخطوة 5: التحقق من انتهاء اللعبة
عندما تنتهي كل أرواح اللاعب يتم استدعاء دالة التنبيه. هذه الدالة ستوقف اللعبة وتكشف عن النتيجة النهائية.
-- Check for Game Over if(lives < 0) then showAlert() end
الخطوة 6: المستويات
يمكنك إضافة العديد من المستويات كما تريد، وهذا مثال على كيف يمكنك إضافة مستوى.
عندما تصل النتيجة إلى 500، الجاذبية تزيد بمقدار 1، وهذا سيجعل اللعبة تنتقل أسرع وأكثر صعوبة للأراضي على الأنظمة الأساسية.
-- Levels if(score > 500 and score < 502) then moveSpeed = 3 end end
الخطوة 7: جمع أرواح
سيتم إزالة صورة رمز الروح وسيزيد عداد الارواح عندما يضرب اللاعب روح حية..
function collisionHandler(e) -- Grab Lives if(e.other.name == 'live') then display.remove(e.other) e.other = nil lives = lives + 1 livesTF.text = 'x' .. lives end
خطوة 8: ضرب كتلة تالفة
إذا ضرب اللاعب كتلة تالفة، سيتم إزالة روح من عداد الارواح و حقل النص.
-- Bad Blocks if(e.other.name == 'bad') then lives = lives - 1 livesTF.text = 'x' .. lives end end
الخطوة 9: إظهار تنبيه
الدالة ستوقف اللعبة وتكشف عن النتيجة النهائية.
function showAlert() gameListeners('rmv') local alert = display.newImage('alertBg.png', 70, 190) alertScore = display.newText(scoreTF.text .. '!', 134, 240, native.systemFontBold, 30) livesTF.text = '' transition.from(alert, {time = 200, xScale = 0.8}) end
الخطوة 10: استدعاء الدالة الرئيسية
من أجل بدء اللعبة من البداية، تحتاج الدالة الرئيسية ان يتم استدعاؤها. مع وجود التعليمات البرمجية أعلاه في المكان المناسب، نحن سوف نفعل ذلك هنا:
Main()
الخطوة 11: تحميل الشاشة
الملف Default.png هو صورة التي سيتم عرضها مباشرة عند بدء تشغيل التطبيق بينما اي أو اس تقوم بتحميل البيانات الأساسية لتظهر "الشاشة الرئيسية". أضف هذه الصورة مجلد مصدر المشروع الخاص بك، سيتم تلقائياً إضافتها من قبل كومبليلير -برنامج التحويل البرمجي- ل كورونا.
الخطوة 12: الرمز
استخدام الرسومات التي قمت بإنشائها قبل أن يمكنك الآن إنشاء رمز لطيف وجيد المنظر. حجم الرمز لرمز لاشبكية آيفون هو 57x57px، ولكن اصدار الشبكية هو 114x114px وأي تيونز تتطلب إصدار 512x512px. اقترح إنشاء الإصدار 512 × 512 أولاً وثم التقليص للأحجام الأخرى.
لا حاجة إلى الزوايا المدورة أو للبهرجة الشفافة، أي تيونز وأي فون سوف تفعل ذلك لك.
الخطوة 13: اختبار في المحاكي
لقد حان الوقت للقيام بالاختبار النهائي. افتح "جهاز محاكاة كورونا"، استعرض للوصول إلى مجلد المشروع الخاص بك، ومن ثم انقر فوق فتح. إذا كان كل شيء يعمل كما هو متوقع، فأنت على استعداد لاتخاذ الخطوة النهائية!
الخطوة 14: البناء
في "محاكاة كورونا" انتقل إلى ملف > بناء حدد الجهاز الهدف خاصتك .عبئ البيانات المطلوبة وانقر فوق إنشاء. انتظر بضع ثوان، وسيكون جاهزاً لاختبار الجهاز و/أو التقديم لتوزيع التطبيق الخاص بك!
الخلاصة والاستنتاج
اختبر مع النتيجة النهائية، وحاول صنع الإصدار المخصص بك من اللعبة!
ارجو انك قد أحببت هذه السلسلة من الدروس التعليمية، ووجدتها مفيدة. شكرا لك على القراءة!