کورونا SDK کا استعمال کرکے آپ کا پہلا Android گیم لکھ رہا ہے

مصنف: Randy Alexander
تخلیق کی تاریخ: 1 اپریل 2021
تازہ کاری کی تاریخ: 26 جون 2024
Anonim
کورونا SDK کا استعمال کرتے ہوئے اپنا پہلا اینڈرائیڈ گیم لکھنا!
ویڈیو: کورونا SDK کا استعمال کرتے ہوئے اپنا پہلا اینڈرائیڈ گیم لکھنا!

مواد


گوگل پلے اسٹور پر سب سے مشہور زمرہ ہمیشہ کھیل رہا ہے۔ اگرچہ ہم سبھی ممکنہ طور پر کلیدی پیداواری ایپس جیسے ویب براؤزر ، ایک ای میل کلائنٹ ، اور فوری مسیجنگ ایپ کا استعمال کرتے ہیں ، لیکن گیمنگ اب بھی موبائل کے تجربے کا ایک اہم حصہ بنی ہوئی ہے۔ تو یہ کوئی تعجب کی بات نہیں ہے کہ بہت سے لوگ جو Android کے لئے ترقی کرنا سیکھنا چاہتے ہیں وہ گیم بنا کر شروع کرنا چاہتے ہیں۔ نیز ، ایمانداری سے بھی بات کریں ، گیم لکھنے میں پیداواری ایپ کو تیار کرنے سے کہیں زیادہ لطف آتا ہے!

اینڈروئیڈ کی سرکاری زبان جاوا ہے اور سرکاری ترقی کا ماحول اینڈرائڈ اسٹوڈیو ہے۔ اگر آپ جاوا کو دیکھنا چاہتے ہیں تو میں ہمارے جاوا کی بنیادی باتوں کا سبق تجویز کرتا ہوں ، اور اگر آپ اینڈروئیڈ اسٹوڈیو کا استعمال کرتے ہوئے کسی ایپ کو لکھنا سیکھنا چاہتے ہیں تو میری تجویز ہے کہ آپ اپنی پہلی اینڈرائیڈ ایپ لکھنے سے متعلق ہمارے سبق کو دیکھیں۔ تاہم جاوا اور اینڈروئیڈ اسٹوڈیو Android کے ل develop تیار کرنے کا واحد راستہ نہیں ہیں۔ آپ ہماری رہنمائی میں دستیاب زبانوں اور SDKs کا جائزہ تلاش کرسکتے ہیں: میں Android Apps تیار کرنا چاہتا ہوں۔ مجھے کون سی زبانیں سیکھنی چاہئیں؟


پروگرامنگ لینگوئج گائڈ میں مذکور SDKs میں سے ایک کورونا ہے ، ایک تیسری پارٹی SDK بنیادی طور پر گیم لکھنے کے لئے ڈیزائن کی گئی ہے۔ جاوا کے بجائے ، کورونا لوا کا استعمال کرتی ہے ، ایک تیز اسکرپٹ زبان جس میں سیکھنا آسان ہے لیکن ابھی تک طاقت ور ہے۔ تاہم ، کورونا واحد موبائل گیمنگ ایس ڈی کے نہیں ہیں جو لوا کا استعمال کرتے ہیں ، دیگر معروف مثالوں میں کوکوس 2 ڈی-ایکس ، مارملائڈ اور گیڈروز شامل ہیں۔

ڈاؤن لوڈ اور انسٹال کریں

کورونا کے ساتھ شروع کرنے کے ل you آپ کو SDK ڈاؤن لوڈ اور انسٹال کرنے کی ضرورت ہوگی۔ کورونا ویب سائٹ پر جائیں اور ڈاؤن لوڈ کے بٹن کو دبائیں۔ کٹ ڈاؤن لوڈ کرنے سے پہلے آپ کو ایک اکاؤنٹ (جو مفت ہے) بنانے کی ضرورت ہوگی۔ اگر آپ ایمولیٹر میں صرف اپنا پروگرام چلانے کے بجائے ایک حقیقی .apk فائل بنانا چاہتے ہیں تو ، آپ کو جاوا 7 انسٹال کرنے کی ضرورت ہوگی ، تاہم آپ کو Android SDK انسٹال کرنے کی ضرورت نہیں ہوگی۔ جاوا 7 ڈویلپمنٹ کٹ انسٹال کرنے کے لئے اوریکل کی ویب سائٹ پر جائیں ، اس سیکشن کو دیکھیں جس میں "جاوا ایس ای ڈیولپمنٹ کٹ 7u79 ″" کہا جاتا ہے اور اپنے کمپیوٹر کے لئے ورژن ڈاؤن لوڈ کریں۔


ایک بار جب آپ کورونا انسٹال کرتے ہیں تو آپ کو اسے فعال کرنے کی ضرورت ہوتی ہے۔ یہ ایک وقتی عمل ہے ، جو مفت ہے۔ کورونا سمیلیٹر شروع کریں اور لائسنس سے اتفاق کریں۔ ای میل ایڈریس اور پاس ورڈ درج کریں جو آپ ڈاؤن لوڈ کے لئے استعمال کرتے ہیں ، اور لاگ ان پر کلک کریں۔

پروجیکٹ شروع کر رہا ہے

کورونا سمیلیٹر کے اندر سے ہی "نیا پروجیکٹ" پر کلک کریں۔ "ایپلی کیشن نام:" فیلڈ میں اپنی ایپ کے لئے ایک نام درج کریں اور باقی ترتیبات کو ان کے ڈیفالٹ پر چھوڑ دیں۔ "ٹھیک ہے" پر کلک کریں۔

اب تین ونڈوز نمودار ہوں گی۔ پہلے دو میں کورونا سمیلیٹر اور کورونا سمیلیٹر آؤٹ پٹ ہیں۔ کورونا آپ کے پروجیکٹ کی فائلوں کو ظاہر کرنے والی فائل ایکسپلورر ونڈو بھی کھولے گا۔

پروجیکٹ ڈائرکٹری میں زیادہ تر فائلیں (ان میں سے کچھ 23) ایپلیکیشن آئیکن کے لئے ہیں! ہمارے لئے ابھی سب سے اہم فائل ہے main.lua، جیسا کہ ہم اپنی ایپ کے لئے کوڈ لکھیں گے۔

لوا سے تعارف

اس سے پہلے کہ ہم کوڈ تحریری شکل اختیار کریں ، ہمیں لوا کا سیٹی اسٹاپ ٹور کرنے کی ضرورت ہے۔ لوا ترجمان (یاد رکھیں کہ یہ اسکرپٹ کی زبان ہے ، مرتب شدہ زبان نہیں) ونڈوز ، او ایس ایکس اور لینکس کے لئے دستیاب ہے۔ تاہم یہ کورونا میں بلٹ میں ہے ، لہذا اس وقت آپ کو اضافی کچھ بھی انسٹال کرنے کی ضرورت نہیں ہے۔ لوا کے ساتھ کھیلنے کا آسان ترین طریقہ آن لائن براہ راست ڈیمو کا استعمال ہے۔

آپ لوا آن لائن کے بارے میں بہت سارے اچھے سبق حاصل کرسکتے ہیں اور آپ لوا میں ریفرنس دستی ، لوا میں پروگرامنگ ، The.Lua.Tutorial ، اور سبق نقطہ Lua ٹیوٹوریل پر ایک نظر ڈالیں۔

یہ ایک چھوٹا لوا پروگرام ہے جو آپ کو لوا کی کچھ اہم خصوصیات دکھائے گا۔

لوکل فنکشن ڈبل آئٹ (x) x = 2 اینڈ کے لئے i = 1،10،1 do x = DoubleIt (i) اگر (x == 10) پھر پرنٹ کریں ("دس") اور پرنٹ کریں (DoubleIt (i)) اختتام اختتام

مذکورہ کوڈ میں تین اہم Lua تعمیرات دکھائے گئے ہیں: افعال ، loops ، اور اگر بیانات۔ تقریب ڈبل یہ () بہت آسان ہے ، یہ صرف پیرامیٹر میں گزرنے کو دگنا کرتا ہے ایکس.

مرکزی کوڈ ایک ہے کے لئے لوپ 1 سے 10 تک۔ یہ کال کرتا ہے ڈبل یہ () ہر تکرار کے ل. اگر واپسی کی قیمت 10 ہے (یعنی کب میں 5 ہے) پھر کوڈ کو "دس" پرنٹ کرتا ہے بصورت دیگر یہ صرف نتائج کو پرنٹ کرتا ہے ڈبل یہ ().

اگر آپ کو کوڈنگ کا کوئی تجربہ ہے تو پھر مثال کوڈ کی اتباع کرنا اتنا آسان ہونا چاہئے۔ اگر آپ کچھ بنیادی پروگرامنگ سیکھنے کے خواہاں ہیں تو میری تجویز ہے کہ آپ اپنی مہارت کو بہتر بنانے کے لئے اوپر سے منسلک وسائل کو استعمال کریں۔

کھیل لکھنا

کورونا میں بنیادی پروگرام لکھنا آسان ہے۔ آپ کو صرف ایک فائل سے اپنی فکر کرنا ہوگی ، مین ڈلو اور کرونا کو تمام بھاری اٹھانے دیں۔ ہم جس کھیل کو لکھنے جا رہے ہیں وہ ایک سادہ "نل" کھیل ہے۔ ایک بیلون یا بم اسکرین پر ناکام ہوجائے گا۔ اگر کھلاڑی بیلون پر ٹیپ کرتے ہیں تو وہ ایک پوائنٹ اسکور کرتے ہیں ، وہ کسی بم پر ٹیپ کرتے ہیں تو اسکور کو بطور جرمانہ 2 سے تقسیم کردیا جائے گا۔ کوڈ لکھنے کے ل you آپ کو ترمیم کرنے کی ضرورت ہے main.lua. آپ یہ کسی بھی ٹیکسٹ ایڈیٹر میں کرسکتے ہیں۔

کورونا ایس ڈی کے میں بلٹ ان 2 ڈی فزکس انجن ہے ، جو عمارت کے کھیل کو بہت آسان بنا دیتا ہے۔ گیم لکھنے کا پہلا قدم طبیعیات کے انجن کو شروع کرنا ہے۔

مقامی طبیعیات = کی ضرورت ہوتی ہے ("طبیعیات") فزکس۔ اسٹارٹ ()

کوڈ کافی حد تک خود وضاحتی ہے۔ ماڈیول طبیعیات بھری ہوئی اور شروع کی گئی ہے ، اسے متغیر کے لئے تفویض کیا گیا ہے طبیعیات. انجن کو چالو کرنے کے لطبیعیات.سٹارٹ () کہا جاتا ہے.

اس کے بعد ہم کچھ مددگار متغیرات تیار کرتے ہیں جو نہ صرف اس سادہ کھیل کے لئے ، بلکہ مزید پیچیدہ گیمز کے لئے بھی کارآمد ثابت ہوں گے۔ نصف اور نصف اسکرین کی چوڑائی کی نصف اور اسکرین کی اونچائی کے نصف کے لئے قدریں رکھیں:

نصف ڈبلیو = ڈسپلے کوونٹ چوڑائی * 0.5 نصف ایچ = ڈسپلے کوونٹ ہائٹ * 0.5

ڈسپلے آبجیکٹ ایک پہلے سے طے شدہ شے ہے جسے کورونا عالمی سطح پر دستیاب کرتی ہے۔

اب پہلا قدم آتا ہے جو اسکرین پر واقعی کچھ ہوتا ہے:

مقامی bkg = display.newImage ("night_sky.png" ، نصف ڈبلیو ، نصف ایچ)

اسی طرح کی خصوصیات کے طور پر مواد ہائٹ اور مواد کی چوڑائی، ڈسپلے اعتراض میں بھی بہت سارے مفید کام ہوتے ہیں۔ نیا عکس () فنکشن ایک تصویری فائل پڑھتا ہے (اس معاملے میں ایک .png) اور اسے اسکرین پر ظاہر کرتا ہے۔ ڈسپلے اشیاء کو پرتوں میں پیش کیا جاتا ہے ، لہذا چونکہ یہ پہلی شبیہہ ہے جسے ہم اسکرین پر ڈال رہے ہیں تب یہ ہمیشہ پس منظر کی ہوگی (جب تک کہ کوڈ واضح طور پر اس کو تبدیل کرنے کے لئے کچھ نہ کرے)۔ پیرامیٹرز نصف اور نصف تصویر کو بیچ میں رکھنے کے لئے کورونا سے کہیں۔

اس مقام پر آپ ایمولیٹر میں کوڈ چلا سکتے ہیں اور پس منظر کی تصویر دیکھ سکتے ہیں۔ اگر آپ فائل کو محفوظ کرتے ہیں تو ایمولیٹر دیکھیں گے کہ فائل تبدیل ہوگئی ہے اور دوبارہ لانچ کرنے کی پیش کش کرے گی۔ اگر ایسا نہیں ہوتا ہے تو پھر فائل-> دوبارہ لانچ کریں۔

چونکہ صارف گببارے پر ٹیپ کرنے کے لئے پوائنٹس اسکور کرے گا ، لہذا ہمیں اسکور متغیر کو شروع کرنے اور اسکرین پر اسکور ظاہر کرنے کی ضرورت ہے۔

اسکور = 0 اسکور ٹیکسٹ = ڈسپلے۔ نیو ٹیکسٹ (اسکور ، ہاف ڈبلیو ، 10)

اسکور کو خیالی نام سے متغیر میں رکھا جائے گا اسکور ،اور اسکور ٹیکسٹ سکور ظاہر کرتا ہے جو اعتراض ہے. پسند ہے نیا عکس (), نیا متن () اس معاملے میں ، اسکرین پر کچھ ڈالیں۔ چونکہ اسکور ٹیکسٹ ایک عالمی متغیر ہے تو ہم کسی بھی مقام پر متن کو تبدیل کرسکتے ہیں۔ لیکن ہم جلد ہی اس میں پہنچ جائیں گے۔

آپ ایمولیٹر کو دوبارہ لانچ کرسکتے ہیں اور اسکرین کے اوپری حصے میں 0 ڈسپلے کا اسکور دیکھ سکتے ہیں۔

بائیں: صرف پس منظر۔ دائیں: پس منظر اور اسکور۔

اب کچھ اور مشکل چیز آتی ہے ، لیکن گھبرانے کی ضرورت نہیں ہے کہ میں اسے ایک دوسرے کے ساتھ لائن سے بیان کروں گا:

لوکل فنکشن بیلون ٹاؤچ (ایونٹ) اگر (ایونٹ.فیس == "شروع ہوا") تو رن ٹائم: ہٹانا ایونٹ لیسٹنر ("enterFrame" ، ایونٹ. خود) ایونٹ.ٹارجیٹ: ریموواسیلف () اسکور = اسکور + 1 اسکور ٹیکسٹ ڈاٹ ٹیکسٹ = اسکور اختتام اختتام

اوپر دیئے گئے کوڈ میں ایک فنکشن کی وضاحت کی گئی ہے بیلون ٹچ () جسے ہر بار بیلون ٹیپ کرنے کے بعد کہا جائے گا۔ ہم نے ابھی تک کورونا سے نہیں کہا ہے کہ جب بھی غبارے کو ٹیپ کیا گیا ہو تو اس فنکشن کو فون کریں ، جو بعد میں آئے گا ، لیکن جب ہم یہ کرتے ہیں تو اس فنکشن کو بلایا جاتا ہے۔

گھسیٹنے کی حمایت کرنے کیلئے ٹیپ یا ٹچ ایونٹس کے متعدد مراحل ہوتے ہیں۔ صارف کسی چیز پر اپنی انگلی رکھتا ہے ، یہ "شروع" مرحلہ ہے۔ اگر وہ اپنی انگلی کو کسی بھی سمت میں پھسلاتے ہیں تو ، یہ "منتقل" مرحلہ ہے۔ جب صارف اسکرین سے اپنی انگلی اٹھاتا ہے تو ، یہ "ختم" مرحلہ ہوتا ہے۔

کی پہلی لائن بیلون ٹچ () جانچ پڑتال ہم "شروع" مرحلے میں ہیں۔ ہم بلون کو ہٹانا چاہتے ہیں اور جتنی جلدی ممکن ہو سکور میں اضافہ کریں۔ اگر فنکشن کو دوسرے مرحلوں جیسے "ختم" کے لئے دوبارہ بلایا جاتا ہے تو پھر فنکشن کچھ نہیں کرتا ہے۔

کے اندراگر بیان کوڈ کی چار لائنیں ہیں۔ آئیے آخری دو سے پہلے کام کریں ، کیوں کہ وہ آسان ہیں۔اسکور = اسکور + 1 صرف ایک سے اسکور میں اضافہ ہوتا ہےاسکور ٹیکسٹ ڈاٹ ٹیکسٹ = اسکور نئے اسکور کی عکاسی کرنے کے لئے اسکرین پر اسکور کا متن تبدیل کرتا ہے۔ یاد رکھیں میں نے یہ کیسے کہااسکور ٹیکسٹ عالمی سطح پر تھا اور کہیں بھی اس تک رسائی حاصل کی جاسکتی تھی ، ٹھیک ہے یہی ہے جو ہم یہاں کرتے ہیں۔

اب پہلی دو لائنوں کے لئے۔ ایک بار جب بیلون یا بم اسکرین کے نیچے گر جاتا ہے تو یہ ابھی بھی ایپ کی یادداشت میں موجود ہوتا ہے ، یہ صرف اتنا ہے کہ آپ اسے نہیں دیکھ سکتے ہیں۔ جیسے جیسے کھیل ترقی کرتا ہے ان آف اسکرین اشیاء کی تعداد میں مسلسل اضافہ ہوتا جائے گا۔ لہذا ہمیں ایک ایسا طریقہ کار بنانے کی ضرورت ہے جو ایک بار اشیاء کو نظروں سے باہر ہونے کے بعد اسے حذف کردے۔ ہم ایک تقریب میں ایسا کرتے ہیںآف اسکرین، جو ہم نے ابھی نہیں لکھا ہے۔ اس فنکشن کو کھیل کے دوران ایک بار فی فریم کہا جائے گا۔ ایک بار جب بیلون ٹیپ ہوجاتا ہے تو پھر ہمیں اسے حذف کرنے اور کال کو دور کرنے کی ضرورت ہے جو چیک کرتا ہے کہ اگر بیلون اسکرین گیا ہے یا نہیں۔

لکیرایونٹ ڈاٹارجیٹ: ری میو سیلف () غبارے کو حذف کرتا ہے۔ جب ٹچ ایونٹ ہوتا ہے تو سننے والے فنکشن کے پیرامیٹرز میں سے ایک ہےتقریب پیرامیٹر اس سے تقریب کو واقعہ اور یہ واقعہ کی قسم بتاتا ہے ، جیسے۔واقعہ.فیس۔ یہ ہمیں یہ بھی بتاتا ہے کہ کون سے غبارے کو ٹیپ کیا گیا تھا ،ایونٹ ڈاٹارجیٹ ہٹائیں خود () فنکشن وہی کرتا ہے جو یہ کہتا ہے یہ کرتا ہے ، یہ اعتراض کو حذف کردیتا ہے (اس معاملے میں ایک بیلون)

اس سے پہلے کی لائن "انٹر فریم" سننے والوں کو ہٹاتی ہے ، جس میں وہ فنکشن ہوتا ہے جسے دیکھنے کے لئے ہر فریم کہا جاتا ہے کہ آیا بیلون اسکرین کے نیچے سے گر گیا ہے یا نہیں۔ جب ہم لکھنے آتے ہیں تو ہم اس کو مزید تفصیل سے دیکھیں گےآف اسکرین سننے والا فنکشن۔

تو ، recap کرنے کے لئے.بیلون ٹچ ()چیک کرتا ہے کہ یہ ٹچ تسلسل کا آغاز ہے۔ اس کے بعد یہ "انٹر فریم" سننے والوں کو ہٹاتا ہے ، جس میں وہ فنکشن ہوتا ہے جسے دیکھنے کے لئے ہر فریم کہا جاتا ہے کہ آیا بیلون اسکرین کے نیچے سے گر گیا ہے یا نہیں۔ اس کے بعد یہ بیلون حذف ہوجاتا ہے ، اسکور میں اضافہ ہوتا ہے اور نیا سکور دکھاتا ہے۔

یہ غباروں کے لئے تھا ، اب ہمیں بموں کے لئے بھی کچھ ایسا ہی درکار ہے:

لوکل فنکشن بم ٹچ (ایونٹ) اگر (ایونٹ۔ فیز == "شروع ہوا") تو رن ٹائم: ہٹائیں ایونٹ لیسٹنر ("enterFrame" ، ایونٹ. خود) ایونٹ اسٹارٹ: ریموواسیلف () اسکور = math.floor (اسکور * 0.5) اسکور ٹیکسٹ.ٹیکسٹ = اسکور آخر اختتام

جیسا کہ آپ دیکھ سکتے ہیں کہ کوڈ اس استثنا کے ساتھ بالکل مماثلت رکھتا ہے کہ اسکور کو بڑھانے کے بجائے اسکور کو 0.5 سے بڑھا دیا جاتا ہے (یعنی 2 سے تقسیم)۔ math.floor () اسکور کو قریب ترین عدد تک لے جاتا ہے۔ لہذا اگر اس کھلاڑی کا اسکور 3 ہے اور اس نے بم کو ٹیپ کیا تو نیا اسکور 1.5 ہوگا ، 1 نہیں۔

میں نے ذکر کیا آف اسکرین () پہلے کام. اس فنکشن کو ہر فریم کو بلایا جائے گا تاکہ یہ چیک کیا جا سکے کہ آیا کوئی شے اسکرین سے دور ہے یا نہیں۔ کوڈ یہ ہے:

مقامی فنکشن اسکرین (خود ، واقعہ) اگر (self.y == نیل) پھر واپسی ختم ہوجائے اگر (self.y> display.contentHeight + 50) تو رن ٹائم: ہٹائیںٹ ایونٹ لیسٹنر ("enterFrame" ، خود) خود: ہٹائیں خود () اختتام اختتام

کمپیوٹنگ میں ایک ایسی صورتحال ہوتی ہے جسے ریس ریس کے نام سے جانا جاتا ہے۔ یہ وہ جگہ ہے جہاں دو چیزیں ہونے والی ہیں لیکن ایک پہلے ہوسکتا ہے ، یا کبھی کبھی دوسری چیزیں پہلے ہو سکتی ہیں۔ یہ ایک دوڑ ہے۔ نسل کے کچھ حالات غیب ہوتے ہیں کیونکہ ایک چیز ہمیشہ ایسا ہی ہوتا ہے ہمیشہ ہوتا ہے ، لیکن وہ ایک دن میں دلچسپ کیڑے پیدا کرسکتے ہیں ، صحیح حالات کے تحت ، دوسری چیز پہلے ہوتی ہے اور پھر نظام ٹوٹ جاتا ہے!

اس سادہ کھیل میں ریس کی حالت ہے کیونکہ دو چیزیں ایک دوسرے کے بہت قریب واقع ہوسکتی ہیں: ایک غبارے کو ٹیپ کیا جاتا ہے اور آف اسکرین () تقریب میں یہ دیکھنے کے لئے بلایا جارہا ہے کہ آیا غبارہ اسکرین سے دور ہوچکا ہے۔ نتیجہ یہ ہے کہ غبارے کو حذف کرنے کے لئے کوڈ کہا جاسکتا ہے اور پھر آف اسکرین () فنکشن کہا جاتا ہے (جو 30 سیکنڈ میں ہر سیکنڈ کی طرح ہوتا ہے)۔ واقعات کے اس عجیب و غریب تسلسل کو حاصل کرنے کے لئے آف اسکرین () تقریب کی جانچ پڑتال کرنے کی ضرورت ہے y آبجیکٹ کی قدر ہے نیل (کالعدم) یا نہیں۔ اگر یہ ہے نیل پھر اس کا مطلب یہ ہے کہ اس شے کو پہلے ہی حذف کردیا گیا ہے ، لہذا آگے بڑھیں ، یہ وہ droids نہیں ہیں جن کی ہم تلاش کر رہے ہیں۔

اگر اعتراض ابھی بھی چل رہا ہے تو پھر اس کی پوزیشن کو چیک کریں ، اگر یہ اسکرین سے 50 پکسلز چلا گیا ہے تو اسے حذف کریں اور سننے والے کو ہٹائیں تاکہ آف اسکرین () اس مقصد کے لئے دوبارہ فنکشن نہیں کہا جائے گا۔ اس بات کا یقین کرنے کے لئے کوڈآف اسکرین () کہا جاتا ہے ہر فریم کوڈ کے اگلے حصے کا حصہ ہے۔

اس کھیل کی پوری بنیاد یہ ہے کہ نئے غبارے یا بم اسکرین کو نیچے گراتے رہیں گے۔ لہذا ہمیں ایک فنکشن کی ضرورت ہے جو نیا بیلون یا نیا بم تخلیق کرے۔

لوکل فنکشن اینڈ نیو بلون اووربوم () لوکل اسٹارٹ ایکس = میتھ ڈراینڈم (ڈسپلے کوونٹ وڈتھ * 0.1 ، ڈسپلے کوونٹ وڈتھ * 0.9) اگر (ریاضی ڈراraنڈ (1،5) == 1) تو - بومب! لوکل بم = ڈسپلے.نیوی آئیجج ("بمب.پی این جی" ، اسٹارٹ ایکس ، -300) فزکس ڈاٹ بڈی (بم) بم.ینٹر فریم = آف اسکرین رن ٹائم: ایڈ ایونٹ لیسٹنر ("enterFrame" ، بم) بم: addEventListener ("ٹچ" ، بم ٹچ) اور - بلون لوکل بیلون = ڈسپلے.نیوی آئیمج ("red_balloon.png" ، startX ، -300) فزکس.ایڈ بیڈی (بیلون) بیلون.ینٹر فریم = آف اسکرین رن ٹائم: addEventListener ("enterFrame" ، بیلون) بیلون: addEventListener ("ٹچ" ، balloonTouched) اختتام پر

تقریب کی پہلی لائن یہ طے کرتی ہے کہ غبارے کہاں سے گریں گے ایکس ہوائی جہاز اگر بیلون یا بم ہمیشہ وسط میں گر جاتا ہے تو ، یہ بہت دلچسپ نہیں ہوگا! توstartX اسکرین کی چوڑائی کے 10 فیصد اور 90 فیصد کے درمیان ایک بے ترتیب تعداد ہے۔

اگلا ایک بے ترتیب نمبر 1 اور 5 کے درمیان اٹھایا جاتا ہے۔اگر نمبر 1 ہے تو ایک بم گرا دیا جائے گا۔ اگر یہ 2 ، 3 ، 4 یا 5 ہے تو ، ایک بیلون گرا دیا جائے گا۔ اس کا مطلب یہ ہے کہ قریب 20 فیصد وقت میں بم گرا دیئے جائیں گے۔

بم اور غبارے کا کوڈ بالکل ایک جیسے ہیں۔ پہلے شبیہہ (یا تو بم یا بیلون) کو استعمال کرتے ہوئے ظاہر کیا جاتا ہےنیا عکس(). اس کی ایکس پوزیشن اس کی ہےstartX جبکہ اس کے y پوزیشن کو -300 پر سیٹ کیا گیا ہے ، یعنی اسکرین کے اوپری حصے میں۔ اس کی وجہ یہ ہے کہ ہم چاہتے ہیں کہ اعتراض اسکرین کے علاقے سے باہر کے دکھائی دینے والے علاقے میں گرے اور پھر نیچے سے گر جائے۔ چونکہ ہم 2 ڈی فزکس انجن کا استعمال کررہے ہیں تو یہ اچھ isا ہے کہ اس چیز کو گرنے کے لئے ابتدائی فاصلے کا تھوڑا سا فاصلہ دیا جائے ، لہذا اس میں کچھ رفتار مل سکتی ہے۔

کال کرنے کے لئےفزکس ڈاٹ بیڈی () کی طرف سے بھری ہوئی تصویر لیتا ہے نیا عکس () اور اسے طبیعیات کے انجن میں کسی شے میں بدل دیتا ہے۔ یہ بہت طاقت ور ہے۔ کسی بھی تصویری فائل کو ایک جسم بنایا جاسکتا ہے جو صرف کال کرکے کشش ثقل اور تصادم کا جواب دیتا ہےفزکس ڈاٹ بیڈی ()۔

بم یا بیلون کوڈ کی آخری تین لائنوں نے سامعین کو ترتیب دیا۔ کی ترتیبenterFrame جائیداد کورونا کو بتاتی ہے کہ کون سا فنکشن ہر فریم اور کال پر کال کریںرن ٹائم: addEventListener () اسے قائم کرتا ہے۔ آخر میں کالغبارہ: addEventListener () کورونہ کو بتاتا ہے کہ اگر بم یا بیلون کو چھو لیا گیا تو کون سے فنکشن پر کال کریں۔

اور اب کھیل تقریبا مکمل ہوچکا ہے۔ ہمیں صرف دو اور لائنوں کے کوڈ کی ضرورت ہے۔

addNewBalloonOrBomb () timer.perforWithDelay (500 ، addNewBalloonOrBomb ، 0)

پہلی لائن واضح طور پر کال کرکے پہلے بم یا غبارے کو گرتی ہےشامل کریںبلیو بلون اوربوم (). دوسری لائن میں ایک ٹائمر لگایا گیا ہے جو کال کرے گاشامل کریںبلیو بلون اوربوم () ہر آدھے سیکنڈ (500 ملی سیکنڈ) اس کا مطلب یہ ہے کہ ایک نیا غبارہ یا بم ہر آدھے سیکنڈ میں گرتا ہے۔

اب آپ کھیل کو ایمولیٹر میں چلا سکتے ہیں۔

یہاں مین ڈاٹ ایلوا کی مکمل فہرست سازی ہے ، اس کھیل کا مکمل پراجیکٹ سورس کوڈ گیٹ ہب پر پایا جاسکتا ہے۔

-------------------------------------------------- --------------------------------------- - - گرتے ہوئے غبارے اور بم کھیل - گیری سمز کے لئے تحریر کردہ --------------------------------------------------- ---------------------------------------------- - شروع کریں طبیعیات کے انجن مقامی طبیعیات = کی ضرورت ہوتی ہے ("طبیعیات") فزکس ڈاٹ اسٹارٹ () - آدھے اسکرین کی چوڑائی اور اونچائی کا حساب لگائیں نیم = ڈسپلے کوونٹ وڈتھ * 0.5 ہاف = ڈسپلے کوونٹ ہائٹ * 0.5 - بیک گراؤنڈ لوکل بی بی جی = ڈسپلے.نیوی امیج سیٹ کریں ("night_sky.png"، halfW، halfH) - اسکور اسکور = 0 اسکور ٹیکسٹ = ڈسپلے.نیٹ ٹیکسٹ (اسکور ، نصف ڈبلیو ، 10) - جب کہا جاتا ہے کہ جب بیلون کھلاڑی کے ذریعہ ٹیپ کیا جاتا ہے تو - اسکور میں 1 لوکل فنکشن بیلون ٹائچ ( ایونٹ) اگر (ایونٹ.فیس == "شروع ہوا") تو رن ٹائم: ہٹاناوینٹ لیسٹنر ("enterFrame" ، ایونٹ. خود) ایونٹ ڈارٹ: ریموواسیلف () اسکور = اسکور +1 اسکور ٹیکسٹ ڈاٹ ٹیکسٹ = اسکور اختتام - جب کہا جاتا ہے بم کھلاڑی کے ذریعہ ٹیپ کیا گیا ہے - آدھے اسکور کو بطور جرمانہ لوکل فنکشن بم ٹچ (ایونٹ) اگر (ایونٹ.فیس == "شروع ہوا") پھر رن ٹائم: ہٹائیں ایوینٹ لیسٹنر ("enterFrame"، ایونٹ. خود) واقعہ ۔ارجیت: ریمووسیلف () اسکور = ریاضی.فلور (اسکور * 0.5) اسکور ٹیکسٹ ڈاٹ ٹیکسٹ = اسکور اختتام - ایسی چیزوں کو حذف کریں جو گر پڑیں اسکرین کے نیچے سکرین لوکل فنکشن اسکرین (سیلف ، ایونٹ) اگر (سیلف وائی == نیل) پھر واپس لوٹیں اگر (سیلف وائی> ڈسپلے کوونٹ ہائٹ + 50) پھر رن ٹائم: ریموٹ ایونٹ لیسٹنر ("enterFrame" ، خود) خود: ہٹائیں () اختتام پذیر - ایک نیا گرتا ہوا غبارہ شامل کریں یا بم لوکل فنکشن شامل کریں نیو بیلون اوبربوم () - آپ گٹ ہب ریپو لوکل اسٹارٹ ایکس = میتھ ڈراینڈوم (ڈسپلے کوونٹ وڈتھ * 0.1 ، ڈسپلے کوونٹ وڈتھ) میں red_ballon.png اور بم ڈاٹ پی این جی تلاش کرسکتے ہیں۔ * 0.9) اگر (math.random (1،5) == 1) تب - BOMB! لوکل بم = ڈسپلے.نیوی آئیجج ("بمب.پی این جی" ، اسٹارٹ ایکس ، -300) فزکس ڈاٹ بڈی (بم) بم.ینٹر فریم = آف اسکرین رن ٹائم: ایڈ ایونٹ لیسٹنر ("enterFrame" ، بم) بم: addEventListener ("ٹچ" ، بم ٹچ) اور - بلون لوکل بیلون = ڈسپلے.نیوی آئیمج ("red_balloon.png" ، startX ، -300) فزکس.ایڈ بیڈی (بیلون) بیلون.ینٹر فریم = آف اسکرین رن ٹائم: addEventListener ("enterFrame" ، بیلون) بیلون: addEventListener ("ٹچ" ، balloonTouched) اختتام اختتام - ایک نیا غبارہ شامل کریں یا اب بم شامل کریں NewBalonon Orbomb () - ہر 0.5 سیکنڈ میں ایک نیا بیلون یا بم شامل کرتے رہیں ۔پرفارم ویت ڈیلی (500 ، addNewBalloonOrBomb ، 0)

اگلے مراحل

اگلا قدم ایک حقیقی اینڈروئیڈ ڈیوائس پر گیم کھیلنا ہے۔ .apk فائل بنانے کے لئے File-> Android for Android… پر کلک کریں اور کھیتوں کو پُر کریں۔ نتیجہ ایک .apk فائل ہوگی جس کی آپ اپنے آلہ پر کاپی کرسکتے ہیں اور پھر انسٹال کرسکتے ہیں۔ آپ کو یہ یقینی بنانا ہوگا کہ آپ نے نامعلوم ذرائع سے ایپ کی تنصیب کی اجازت دینے کے ل your اپنے آلے کو تشکیل دیا ہے۔ اس پر ایمیزون کے پاس کچھ اچھی دستاویزات موجود ہیں کیونکہ آپ کو ایمیزون ایپ اسٹور انسٹال کرنے کے لئے بھی اسے ترتیب دینے کی ضرورت ہے۔ کورونا کے پاس بھی ایک ہدایت نامہ موجود ہے کہ آپ اپنے Android ایپ پر ایپ پر دستخط کرنے ، تعمیر کرنے اور جانچنے کے طریقوں سے متعلق ہیں۔

کھیل کو کامیابی کے ساتھ آپ کے آلہ پر انسٹال کرنے کے ساتھ ہی کھیل کو بہتر بنانا ہے۔ مثال کے طور پر ، کیوں نہیں ایک "پاپ" یا "بینگ" لگانے والی ہر چیز کو بیلون یا بم ٹیپ کرنے کی کوشش کرتے ہیں۔ اس کے لئے کورونا کے پاس ایک API ہے:Media.playEventSound ().

یا کیوں کسی تیسری قسم کی شے کو شامل کرنے کی کوشش نہیں کررہے ہو ، کہتے ہیں کہ ایک سپر بوسٹ جو موجودہ اسکور کو دوگنا کرتا ہے ، یا کچھ پس منظر کی موسیقی کے بارے میں کیسے؟

لپیٹنا

کورونا کے ساتھ گیمز لکھنا بالکل سیدھا ہے کیونکہ ایس ڈی کے اوپن جی ایل جیسی چیزوں کو سنبھالتی ہے اور اس میں بلٹ میں 2 ڈی فزکس انجن شامل ہے۔ نیز سیکھنا آسان ہے اور اس کے ل programming بھی کم سے کم پروگرامنگ تجربہ رکھنے والے کسی کے ل hard مشکل نہیں ہونا چاہئے۔ کورونالابس ویب سائٹ میں بہت سارے دستاویزات ہیں جن میں بہت سارے رہنما اور سبق بھی شامل ہیں۔

کوڈ کی 100 سے بھی کم لائنوں میں ہمارے پاس ایک کام کا کھیل ہے۔ ٹھیک ہے ، اس سے کوئی انعامات نہیں جیتنے والا ہے ، تاہم یہ کورونا ایس ڈی کے کی طاقت اور لچک کو ظاہر کرتا ہے۔

آج ، گوگل نے اس سال کی گیم ڈویلپرز کانفرنس میں کمپنی کے ذریعہ ہونے والے ایک ایونٹ کے لئے پریس انوائسز بھیجنا شروع کیا۔ دعوت نامہ شرکاء کو "ارد گرد جمع" کرنے کی ترغیب دیتی ہے اور وعدہ کرتی ہے...

گوگل نے گذشتہ برسوں میں اندرون خانہ چپ سازی کی کوششوں کو آہستہ آہستہ بڑھایا ہے۔ ان کوششوں نے حالیہ مہینوں میں کافی حد تک تیزی لائی ، ہندوستان کے شہر بنگالورو میں ایک درجن سے زائد نئے مائکرو چیپ انجینئ...

ہم آپ کو دیکھنے کے لئے مشورہ دیتے ہیں