कोरोना एसडीके वापरून आपला पहिला Android खेळ लिहित आहे

लेखक: Randy Alexander
निर्मितीची तारीख: 1 एप्रिल 2021
अद्यतन तारीख: 26 जून 2024
Anonim
कोरोना SDK वापरून तुमचा पहिला Android गेम लिहित आहे!
व्हिडिओ: कोरोना SDK वापरून तुमचा पहिला Android गेम लिहित आहे!

सामग्री


गूगल प्ले स्टोअर वर सर्वाधिक लोकप्रिय श्रेणी नेहमी खेळ आहे. जरी आपण सर्व कदाचित वेब ब्राउझर, ईमेल क्लायंट आणि इन्स्टंट मेसेजिंग अॅप सारख्या की प्रॉडक्टिव्हिटी अ‍ॅप्सचा वापर करीत असलो तरी गेमिंग अजूनही मोबाइल अनुभवाचा एक महत्त्वाचा भाग आहे. म्हणूनच हे आश्चर्यकारक आहे की बरेच लोक जे Android साठी विकसित करण्यास शिकू इच्छित आहेत त्यांना गेम बनवून प्रारंभ करू इच्छित आहेत. तसेच, प्रामाणिकपणे सांगा, उत्पादन लिहिणे अॅप विकसित करण्यापेक्षा गेम लिहिणे हे संपूर्ण भार आहे.

अँड्रॉइडची अधिकृत भाषा जावा आहे आणि अधिकृत विकास वातावरण अँड्रॉइड स्टुडिओ आहे. आपल्याला जावा पहायचे असल्यास मी आमचे जावा बेसिक्स ट्यूटोरियल सुचवितो, आणि अँड्रॉइड स्टुडिओ वापरुन अ‍ॅप कसे लिहायचे आहे हे जाणून घ्यायचे असेल तर मी सुचवितो की आपले पहिले अँड्रॉइड अ‍ॅप लिहिण्याबाबत आमचे ट्यूटोरियल कसे पहावे. तथापि जावा आणि Android स्टुडिओ हा Android साठी विकसित करण्याचा एकमेव मार्ग नाही. आमच्या मार्गदर्शकामध्ये आपल्याला उपलब्ध भाषा आणि SDKs चे विहंगावलोकन आढळू शकेल: मला Android अॅप्स विकसित करायचे आहेत - मी कोणत्या भाषा शिकू?


प्रोग्रामिंग भाषा मार्गदर्शकामध्ये उल्लेखित एसडीकेपैकी एक म्हणजे कोरोना, तृतीय पक्षाची एसडीके प्रामुख्याने गेम लिहिण्यासाठी डिझाइन केलेली आहे. जावा ऐवजी कोरोना लूआ वापरते, वेगवान स्क्रिप्टिंग भाषा जी अद्याप शिकणे सोपे आहे. तथापि, कोरोना एकमेव मोबाइल गेमिंग एसडीके नाही जी लुआ वापरते, इतर सुप्रसिद्ध उदाहरणांमध्ये कोकोस 2 डी-एक्स, मुरब्बा आणि गिदेरोस यांचा समावेश आहे.

डाउनलोड आणि स्थापित करा

कोरोनासह प्रारंभ करण्यासाठी आपल्याला एसडीके डाउनलोड आणि स्थापित करण्याची आवश्यकता आहे. कोरोना वेबसाइटवर जा आणि डाउनलोड बटणावर दाबा. आपण किट डाउनलोड करण्यापूर्वी आपल्याला एक खाते तयार करणे आवश्यक आहे (जे विनामूल्य आहे). जर आपल्याला एमुलेटरमध्ये फक्त आपला प्रोग्राम चालवण्याऐवजी वास्तविक .apk फाइल तयार करायची असेल तर आपल्याला जावा 7 स्थापित करावा लागेल, तथापि आपल्याला Android एसडीके स्थापित करण्याची आवश्यकता नाही. जावा 7 डेव्हलपमेंट किट स्थापित करण्यासाठी ओरॅकलच्या वेबसाइटवर जा, “जावा एसई डेव्हलपमेंट किट 7u79 called नावाचा विभाग शोधा आणि आपल्या पीसीसाठी आवृत्ती डाउनलोड करा.


एकदा आपण कोरोना स्थापित केल्यानंतर आपल्याला ते सक्रिय करणे आवश्यक आहे. ही एक-वेळ प्रक्रिया आहे, जी विनामूल्य आहे. कोरोना सिम्युलेटर प्रारंभ करा आणि परवान्यास सहमती द्या. आपण डाउनलोड करण्यासाठी वापरलेला ईमेल पत्ता आणि संकेतशब्द प्रविष्ट करा आणि लॉगिन क्लिक करा.

प्रकल्प सुरू करीत आहे

कोरोना सिम्युलेटर मधूनच “नवीन प्रकल्प.” वर क्लिक करा. “अ‍ॅप्लिकेशन नेम:” फील्डमध्ये आपल्या अ‍ॅपसाठी नाव प्रविष्ट करा आणि उर्वरित सेटिंग्ज त्यांच्या डीफॉल्टवर सोडा. “ओके” वर क्लिक करा.

तीन विंडो आता दिसेल. पहिली दोन म्हणजे कोरोना सिम्युलेटर आणि कोरोना सिम्युलर आउटपुट. कोरोना आपल्या प्रकल्पातील फायली दर्शविणारी एक फाईल एक्सप्लोरर विंडो देखील उघडेल.

प्रकल्प निर्देशिकेतील बहुतांश फायली (त्यापैकी 23) अनुप्रयोग चिन्हासाठी आहेत! आमच्यासाठी आत्ता सर्वात महत्वाची फाईल आहे main.luaम्हणूनच आम्ही आमच्या अॅपसाठी कोड लिहू.

लुआचा परिचय

आम्ही कोड लिहिण्यापूर्वी, आम्हाला लुआचा व्हिसल-स्टॉप टूर करणे आवश्यक आहे. ल्युआ इंटरप्रिटर (लक्षात ठेवा ही स्क्रिप्टिंग भाषा आहे, संकलित केलेली भाषा नाही) विंडोज, ओएस एक्स आणि लिनक्ससाठी उपलब्ध आहे. तथापि हे कोरोनामध्ये अंगभूत आहे, म्हणून यावेळी आपणास अतिरिक्त काहीही स्थापित करण्याची आवश्यकता नाही. ल्युआ सोबत खेळण्याचा सर्वात सोपा मार्ग म्हणजे ऑनलाइन लाइव्ह डेमो वापरणे.

आपल्याला ल्युआ बद्दल बरेच चांगले शिकवण्या ऑनलाईन सापडतील आणि आपण लुआ रेफरन्स मॅन्युअल, ल्युआ मधील प्रोग्रामिंग, द.लु.आ. ट्यूटोरियल आणि ट्यूटोरियल्स पॉईंट लुआ ट्यूटोरियल येथे पहा.

येथे एक छोटा लुआ प्रोग्राम आहे जो आपल्याला लुआची काही प्रमुख वैशिष्ट्ये दर्शवेल:

लोकल फंक्शन डबलआयट (एक्स) रिटर्न एक्स * 2 एंड आय i = 1,10,1 डू एक्स = डबलआयटी (आय) जर (एक्स == 10) तर प्रिंट ("दहा") अन्यथा प्रिंट करा (डबलआयटी (आय)) एंड एंड

उपरोक्त कोड तीन महत्त्वपूर्ण लुआ कन्स्ट्रक्ट्र्स दाखवते: फंक्शन्स, लूप्स आणि स्टेटमेंट्स. कार्य दुहेरी () हे अगदी सोपे आहे, हे पॅरामीटरमध्ये पास दुप्पट करते x.

मुख्य कोड आहे च्या साठी 1 ते 10 पर्यंत लूप. कॉल करतो दुहेरी () प्रत्येक पुनरावृत्तीसाठी. जर रिटर्न व्हॅल्यू 10 असेल (म्हणजे के मी 5) नंतर कोड "दहा" प्रिंट करतो अन्यथा तो फक्त निकालाच्या बाहेर छापतो दुहेरी ().

आपल्याकडे कोणताही कोडिंग अनुभव असल्यास उदाहरणार्थ कोड अनुसरण करणे पुरेसे सोपे असावे. जर आपण काही मूलभूत प्रोग्रामिंग शिकत असाल तर मी सुचवितो की आपण कौशल्ये वाढवण्यासाठी वर लिंक केलेल्या काही संसाधनांचा वापर करा.

खेळ लिहित आहे

कोरोनामध्ये मूलभूत प्रोग्राम लिहिणे सोपे आहे. आपल्याला फक्त एका फाईलसह स्वतःची चिंता करण्याची आवश्यकता आहे, main.lua, आणि कोरोनाला सर्व जोरदार उचल करू द्या. आम्ही ज्या गेममध्ये लिहित आहोत तो एक सोपा "टॅप" खेळ आहे. एक बलून किंवा बॉम्ब पडद्यावर पडेल. जर खेळाडूने बलूनवर बिंदू मिळविण्याकरिता टॅप केले तर त्यांनी बॉम्बवर टॅप केले तर दंड म्हणून स्कोर 2 ने विभाजित होईल. कोड लिहिण्यासाठी आपल्याला संपादित करणे आवश्यक आहे main.lua. आपण हे कोणत्याही मजकूर संपादकात करू शकता.

कोरोना एसडीके मध्ये अंगभूत 2 डी फिजिक्स इंजिन आहे, जे बिल्डिंग गेम्स खूप सुलभ करते. गेम लिहिण्याची पहिली पायरी म्हणजे भौतिकशास्त्र इंजिन प्रारंभ करणे:

स्थानिक भौतिकशास्त्र = आवश्यक ("भौतिकशास्त्र") भौतिकशास्त्र.स्टार्ट ()

कोड बर्‍यापैकी स्व-स्पष्टीकरणात्मक आहे. मॉड्यूल फिजिक्स लोड आणि इनिशिएलाइज्ड आहे, ते व्हेरिएबलला दिले गेले आहे भौतिकशास्त्र. इंजिन सक्षम करण्यासाठीभौतिकशास्त्र.स्टार्ट () असे म्हणतात.

पुढे आम्ही काही उपयुक्त व्हेरिएबल्स तयार करतो जे केवळ या सोप्या गेमसाठीच नव्हे तर अधिक जटिल खेळांसाठी देखील उपयुक्त ठरतील. अर्धा आणि अर्धा एच स्क्रीनच्या अर्ध्या भागासाठी आणि स्क्रीन उंचीच्या अर्ध्या भागासाठी मूल्ये धरून ठेवा.

हाफडब्ल्यू = डिस्प्ले कॉन्टेंटविड्थ * 0.5 हाफ = डिस्प्ले कॉन्टेनहाइट * 0.5

प्रदर्शन ऑब्जेक्ट ही पूर्व परिभाषित ऑब्जेक्ट आहे जी कोरोना जागतिक स्तरावर उपलब्ध करते.

आता स्क्रीनवर काहीतरी घडवून आणणारी पहिली पायरी आलीः

स्थानिक बीकेजी = डिस्प्ले. न्यू इमेज ("नाईट_स्की.पीएनजी", अर्धा डब्ल्यू, हाफ एच)

तसेच गुणधर्म सामग्रीहाइट आणि सामग्रीविड्थ, द प्रदर्शन ऑब्जेक्ट मध्ये बरेच उपयोगी फंक्शन्स देखील असतात. द नवीन प्रतिमा () फंक्शन प्रतिमा फाइल वाचते (या प्रकरणात एक .png) आणि ती स्क्रीनवर प्रदर्शित करते. डिस्प्ले ऑब्जेक्ट्स थरांमध्ये प्रस्तुत केली जातात, म्हणूनच आम्ही स्क्रीनवर ठेवत असलेली ही पहिली प्रतिमा असल्याने ती नेहमीच पार्श्वभूमी असेल (जोपर्यंत कोड स्पष्टपणे बदलण्यासाठी काहीतरी करत नाही). मापदंड अर्धा आणि अर्धा एच मध्यभागी प्रतिमा ठेवण्यास कोरोनाला सांगा.

या क्षणी आपण एमुलेटरमध्ये कोड चालवू शकता आणि पार्श्वभूमी प्रतिमा पाहू शकता. जर आपण फाईल सेव्ह केली तर एमुलेटर लक्षात येईल की फाईल बदलली आहे आणि पुन्हा सुरू करण्याची ऑफर दिली आहे. जर तसे झाले नाही तर फाईल-> रीलाँच वापरा.

वापरकर्ता बलूनमध्ये टॅप करण्यासाठी पॉईंट्स स्कोर करेल म्हणून आम्हाला स्कोअर व्हेरिएबलची सुरूवात करणे आणि स्क्रीनवर स्कोअर प्रदर्शित करणे आवश्यक आहे:

स्कोअर = 0 स्कोअरटेक्स्ट = प्रदर्शन. न्यू टेक्स्ट (स्कोअर, हाफडब्ल्यू, 10)

स्कोअर कल्पित नावाच्या व्हेरिएबलमध्ये ठेवले जाईल स्कोअर,आणि स्कोअर टेक्स्ट स्कोअर दाखवणारे ऑब्जेक्ट आहे. आवडले नवीन प्रतिमा (), नवीन पाठ () या प्रकरणात मजकूरात स्क्रीनवर काहीतरी ठेवा. असल्याने स्कोअर टेक्स्ट हे वैश्विक व्हेरिएबल आहे मग आपण कोणत्याही क्षणी मजकूर बदलू शकतो. पण आम्ही लवकरच त्याकडे पोहोचू.

आपण इम्युलेटर पुन्हा लाँच करू शकता आणि स्क्रीनच्या शीर्षस्थानी 0 प्रदर्शन गुण मिळवू शकता.

डावा: फक्त पार्श्वभूमी. उजवा: पार्श्वभूमी आणि स्कोअर.

आता जरा जास्त अवघड असे काहीतरी येते, परंतु काळजी करू नका मी त्यास रांगेतून सांगणार आहे:

लोकल फंक्शन बलून टच (इव्हेंट) जर (इव्हेंट.फेज == "प्रारंभ" झाला असेल तर) रनटाइम: रिव्हेन्टइव्हेंटलिस्टनर ("एंटरफ्रेम", इव्हेंट.सेल्फ) इव्हेंट.टारजेट: रीमोव्हेल्सेल्फ () स्कोअर = स्कोअर + १ स्कोअर टेक्स्ट.टेक्स्ट = स्कोअर एंड एंड

वरील कोड नावाच्या फंक्शनची व्याख्या करते बलून टच () ज्याला प्रत्येक वेळी बलून टॅप केला जाईल असे म्हणतात. आम्ही अद्याप कोरोनाला असे म्हटले नाही की प्रत्येक वेळी बलून टॅप केल्यावर हे फंक्शन कॉल करा, ते नंतर येईल, परंतु जेव्हा आपण हे करतो तेव्हा कॉल केलेले फंक्शन होते.

ड्रॅगला समर्थन देण्यासाठी टॅप किंवा स्पर्श इव्हेंटला अनेक टप्पे असतात. वापरकर्त्याने त्यांचे बोट एखाद्या वस्तूवर ठेवले, हा “प्रारंभ” चरण आहे. जर त्यांनी त्यांचे बोट कोणत्याही दिशेने सरकवले तर ते “हलवले” चरण आहे. जेव्हा वापरकर्ता पडद्यावरुन आपले बोट वर करते, तो “समाप्त” टप्पा आहे.

ची पहिली ओळ बलून टच () आम्ही “प्रारंभ” टप्प्यात असलेले धनादेश. आम्हाला बलून काढायचा आणि शक्य तितक्या लवकर स्कोअर वाढवायचा आहे. जर फंक्शनला “एंडडेड” सारख्या इतर टप्प्यांसाठी पुन्हा कॉल केले गेले तर फंक्शन काहीही करत नाही.

आततर स्टेटमेंट हे कोडच्या चार ओळी आहेत. चला शेवटचे दोन सोप्या पद्धतीने व्यवहार करूया.स्कोअर = स्कोअर +1 फक्त एकाने गुणांची वाढ होतेस्कोअरटेक्स्ट.टेक्स्ट = स्कोअर नवीन स्कोअर प्रतिबिंबित करण्यासाठी स्क्रीनवरील स्कोअर मजकूर बदलतो. मी ते कसे बोललो ते आठवास्कोअर टेक्स्ट ते जागतिक होते आणि कोठेही प्रवेश करता येऊ शकते, हे आपण येथे करतो.

आता पहिल्या दोन ओळींसाठी. एकदा एकदा बलून किंवा बॉम्ब पडद्याच्या खालच्या बाजूस पडला तरीही तो अॅपच्या मेमरीमध्ये अस्तित्वात आहे, इतकाच आपण तो पाहू शकत नाही. गेम जसजशी प्रगती करत आहे तसतसे या ऑफ-स्क्रीन वस्तूंची संख्या निरंतर वाढेल. म्हणून आमच्याकडे अशी यंत्रणा असणे आवश्यक आहे जे ऑब्जेक्ट्सच्या नजरेनंतर त्यांना हटवतात. म्हणतात त्या फंक्शनमधे आम्ही ते करतोऑफस्क्रीन, जे आम्ही अद्याप लिहिले नाही. गेम दरम्यान प्रति कार्य एकदा असे कार्य म्हटले जाईल. एकदा बलून टॅप झाल्यावर आपल्याला तो हटविणे आवश्यक आहे आणि तो कॉल काढून टाकण्याची गरज आहे जो बलून ऑफस्क्रीन झाला आहे की नाही ते तपासेल.

ओळइव्हेंट.टारजेट: रीमोव्ह सेल्फ () बलून हटविला. जेव्हा एखादा स्पर्श इव्हेंट येतो तेव्हा श्रोता कार्याच्या मापदंडांपैकी एक म्हणजेकार्यक्रम मापदंड हे इव्हेंट आणि तो कोणत्या प्रकारचा इव्हेंट आहे याबद्दल फंक्शनला सांगते, उदा.इव्हेंट.फेज. हे कोणत्या बलून टॅप केले गेले हे देखील आम्हाला सांगते,कार्यक्रम.टारजेट.काढून टाका () फंक्शन जे म्हणतो ते करते जे करते, हे ऑब्जेक्ट डिलिट करते (या प्रकरणात एक बलून).

त्याआधीची ओळ “एंटरफ्रेम” श्रोता काढून टाकते, जी फुले स्क्रीनच्या खालच्या बाजूस खाली गेली आहे की नाही हे पाहण्यासाठी प्रत्येक फ्रेम म्हटले जाते. जेव्हा आम्ही लिहायला आलो तेव्हा आम्ही त्यास अधिक तपशीलवारपणे पाहूऑफस्क्रीन श्रोता कार्य

तर, परत घेण्यास.बलून टच ()ही स्पर्श क्रमांची सुरूवात आहे हे तपासते. हे नंतर “एंटरफ्रेम” श्रोताला काढून टाकते, जे असे फंक्शन आहे ज्याला प्रत्येक फ्रेम म्हटले जाते की पडद्याच्या तळाशी खाली पडला आहे की नाही हे पाहण्यासाठी. हे बलून हटवते, स्कोअर वाढवते आणि नवीन स्कोअर दाखवते.

ते बलूनसाठी होते, आता आपल्याला बॉम्बसाठीही असेच काहीतरी हवे आहे:

लोकल फंक्शन बॉम्ब टच (इव्हेंट) जर (इव्हेंट.फेज == "प्रारंभ" झाला असेल तर) रनटाइम: रिव्हेन्टवेन्टलिस्टनर ("एंटरफ्रेम", इव्हेंट.सेल्फ) इव्हेंट.टारजेट: रेमोव्ह सेल्फ () स्कोअर = मॅथ.फ्लोर (स्कोअर * ०.०) स्कोर टेक्स्ट.टेक्स्ट = शेवट शेवट

आपण पाहू शकता की अपवाद वगळता कोड अगदी समान आहे, स्कोअर वाढविण्याऐवजी, स्कोअर 0.5 ने गुणाकार केला (म्हणजे 2 ने विभाजित). द गणित.फ्लोर () फंक्शन स्कोअरला सर्वात जवळील पूर्णांक पूर्ण करते. तर जर खेळाडूची स्कोर 3 असेल आणि त्याने बॉम्ब टॅप केला असेल तर नवीन स्कोअर 1.5 असेल, तर 1 नाही.

मी उल्लेख केला ऑफस्क्रीन () आधी कार्य करा. एखादा ऑब्जेक्ट स्क्रीन बंद झाला आहे की नाही हे तपासण्यासाठी या फंक्शनला प्रत्येक फ्रेमला कॉल केले जाईल. येथे कोड आहे:

लोकल फंक्शन ऑफस्क्रीन (सेल्फ, इव्हेंट) जर (सेल्फ.वाय == शून्य) नंतर परतीचा शेवट परत आल्यास (सेल्फ.इ> डिस्प्ले कॉन्टेनहाइट + 50) नंतर रनटाइम: रिव्हेन्टवेस्टलिस्टनर ("एंटरफ्रेम", सेल्फ) सेल्फ: रीलिफ सेल्फ़ () एंड एंड

संगणनात शर्यती अट म्हणून ओळखली जाणारी एक परिस्थिती आहे. येथेच दोन गोष्टी घडणार आहेत परंतु एक कदाचित प्रथम होईल, किंवा काहीवेळा इतर कदाचित प्रथम घडतील. ही एक शर्यत आहे. काही वंश परिस्थिती अदृश्य असतात कारण एक गोष्ट नेहमीच प्रथम घडते असे दिसते, परंतु त्या त्या एका दिवसात रोचक दोष निर्माण करू शकतात योग्य परिस्थितीत, दुसरी गोष्ट प्रथम घडते आणि नंतर सिस्टम खंडित होते!

या सोप्या गेममध्ये शर्यतीची अट आहे कारण दोन गोष्टी एकमेकांच्या अगदी जवळ येऊ शकतात: एक बलून टॅप केला जात आहे आणि ऑफस्क्रीन () बलून स्क्रीन बंद झाला आहे की नाही हे पाहण्यासाठी फंक्शन कॉल केले जात आहे. याचा परिणाम असा आहे की बलून हटविण्यासाठी कोड कॉल केला जाऊ शकतो आणि नंतर ऑफस्क्रीन () फंक्शन असे म्हणतात (जे प्रति सेकंदात 30 वेळा होते). घटनांच्या या विचित्र क्रमांकाभोवती जाण्यासाठी ऑफस्क्रीन () फंक्शनला हे तपासणे आवश्यक आहे y ऑब्जेक्टचे मूल्य आहे शून्य (शून्य) किंवा नाही. जर असेल तर शून्य तर याचा अर्थ असा आहे की ऑब्जेक्ट आधीपासूनच हटविला गेला आहे, म्हणून पुढे जा, हे आम्ही शोधत असलेल्या ड्रॉइड्स नाहीत.

ऑब्जेक्ट अद्याप प्लेमध्ये असल्यास, नंतर त्याचे स्थान तपासा, जर ते स्क्रीनवरुन 50 पिक्सेल गेले असेल तर ते हटवा आणि श्रोत्यास काढा जेणेकरून ऑफस्क्रीन () या ऑब्जेक्टसाठी फंक्शन पुन्हा कॉल केले जाणार नाही. याची खात्री करण्यासाठी कोडऑफस्क्रीन () प्रत्येक फ्रेमला कोडच्या पुढील भागाचा भाग म्हणतात.

या खेळाचा संपूर्ण आधार असा आहे की नवीन बलून किंवा बॉम्ब पडद्यावर पडत राहतील. म्हणून आम्हाला एक फंक्शन आवश्यक आहे जे नवीन बलून किंवा नवीन बॉम्ब तयार करेलः

लोकल फंक्शन addNewBalloonOrBomb () स्थानिक startX = math.random (display.contentWidth * 0.1, display.contentWidth * 0.9) जर (math.random (1,5) == 1) तर - BOMB! लोकल बॉम्ब = डिस्प्ले.न्यूइमेज ("बॉम्ब.पीएनजी", स्टार्टएक्स, -300) फिजिक्स.एड्डबॉडी (बॉम्ब) बोंब.एन्टरफ्रेम = ऑफस्क्रीन रनटाइम: Eवेन्टलिस्टनर ("एंटरफ्रेम", बॉम्ब) बॉम्ब: Eवेन्टलिस्टनर ("टच", बॉम्ब टच) अन्य - बलून लोकल बलून = डिस्प्ले.न्यूइमेज ("रेड_बालून.पीएनजी", स्टार्टएक्स, -300) फिजिक्स.एड्डीबॉडी (बलून) बलून.एन्टरफ्रेम = ऑफस्क्रीन रनटाइम: Eवेन्टलिस्टनर ("एंटरफ्रेम", बलून) बलून: Eएव्हेंटलिस्टनर ("टच", balloonTouched) शेवट

फंक्शनची पहिली ओळ त्यावरून बलून कोठून खाली येईल हे ठरवते x विमान जर बलून किंवा बॉम्ब नेहमीच मध्यभागी पडला तर ते फार मनोरंजक ठरणार नाही! तरप्रारंभ 10% ते 90% स्क्रीन रूंदी दरम्यानची यादृच्छिक संख्या आहे.

पुढे 1 आणि 5 दरम्यान यादृच्छिक क्रमांक निवडला जातो.जर संख्या 1 असेल तर बॉम्ब सोडला जाईल. जर ते 2, 3, 4 किंवा 5 असेल तर एक बलून सोडला जाईल. म्हणजे सुमारे 20 टक्के वेळा बॉम्ब सोडले जातील.

बॉम्ब आणि बलून कोड सारखाच आहे. प्रथम प्रतिमा (एकतर बॉम्ब किंवा बलून) वापरुन दर्शविली जाईलनवीन प्रतिमा(). त्याची x स्थिती त्या आहेप्रारंभ तर त्याचे y स्थान -300 वर सेट केले आहे, म्हणजेच स्क्रीनच्या शीर्षस्थानी बंद. त्यामागचे कारण हे आहे की ऑब्जेक्ट स्क्रीन क्षेत्राच्या बाहेरून दृश्यास्पद भागात खाली पडावे आणि नंतर तळापासून पाहिजे. आम्ही 2 डी फिजिक्स इंजिन वापरत असल्याने ऑब्जेक्टला पडण्यासाठी थोडा प्रारंभिक अंतर देणे चांगले आहे, जेणेकरून त्यास काही वेग मिळेल.

कॉलभौतिकशास्त्र.एड्डीबॉडी () ने भरलेली प्रतिमा घेते नवीन प्रतिमा () आणि त्यास भौतिकशास्त्र इंजिनमधील ऑब्जेक्टमध्ये रुपांतरित करते. हे खूप शक्तिशाली आहे. कोणतीही प्रतिमा फाइल शरीरात बनविली जाऊ शकते जी केवळ कॉल करून गुरुत्वाकर्षणास आणि टक्करांना प्रतिसाद देतेभौतिकशास्त्र.एड्डीबॉडी ().

बॉम्बच्या शेवटच्या तीन ओळी किंवा बलून कोडने श्रोते उभे केले. सेट करत आहेenterFrame प्रॉपर्टी कोरोनाला सांगते की कोणत्या फंक्शनला प्रत्येक फ्रेमला कॉल करावे आणि कॉल करारनटाइम: Eडएव्हेंटलिस्टनर () ते सेट करते. शेवटी कॉलबलून: Eवेन्टलिस्टनर () बॉम्ब किंवा बलूनला स्पर्श केला तर कोणत्या फंक्शनला कॉल करावे हे कोरोनाला सांगते.

आणि आता खेळ जवळजवळ पूर्ण झाला आहे. आम्हाला कोडच्या आणखी दोन ओळी आवश्यक आहेत.

Nन्यूबॅलूनऑरबॉम्ब () टाईमअर्परफॉर्मविथडिले (500००, addडब्ल्यू बलून ऑरबॉम्ब, ०)

पहिली ओळ स्पष्टपणे कॉल करून अगदी प्रथम बॉम्ब किंवा बलून पडतेAddNewBalloonOrBomb (). दुसरी ओळ एक टाइमर सेट करते जी कॉल करेलAddNewBalloonOrBomb () दर अर्धा सेकंद (500 मिलिसेकंद). याचा अर्थ असा की एक नवीन बलून किंवा बॉम्ब दर अर्ध्या सेकंदाला पडेल.

आपण आता एमुलेटरमध्ये गेम चालवू शकता.

येथे मेन.लुआची संपूर्ण यादी आहे, गिटहबवर या गेमसाठी पूर्ण प्रकल्प स्त्रोत कोड आढळू शकतो.

-------------------------------------------------- --------------------------------------- - - पडणारा बलून आणि बॉम्ब गेम - यासाठी गॅरी सिम्स द्वारा लिखित --------------------------------------------------- ---------------------------------------------- - प्रारंभ करा भौतिकशास्त्र इंजिन स्थानिक भौतिकशास्त्र = आवश्यक ("भौतिकशास्त्र") फिजिक्स.स्टार्ट () - अर्ध्या स्क्रीनची रुंदी आणि उंची अर्ध्याची गणना करा अर्धा डब्ल्यू = डिस्प्ले कॉन्टविड्थ * 0.5 हाफ = डिस्प्ले कॉन्टेंटहाइट * ०.० - स्थानिक बीकेजी = डिस्प्ले.न्यू प्रतिमा ("नाईट_स्की.पीएनजी", हाफ डब्ल्यू, हाफ एच) - स्कोअर स्कोअर = ० स्कोअरटेक्स्ट = डिस्प्ले. न्यू टेक्स्ट (स्कोअर, हाफ डब्ल्यू, १०) - जेव्हा बलून टेलरने प्लेयरद्वारे टॅप केला जातो तेव्हा कॉल केला - १ स्थानिक फंक्शन बलून टच करून स्कोअर वाढवा ( इव्हेंट) जर (इव्हेंट.फेज == "" प्रारंभ झाला)) तर रनटाइम: रीलिमेंटइव्हेंटलिस्टनर ("एंटरफ्रेम", इव्हेंट. स्वत:) इव्हेंट. स्टार्ट: रेमोव्ह सेल्फ () स्कोअर = स्कोअर + १ स्कोअर टेक्स्ट.टेक्स्ट = स्कोअर एंड - जेव्हा म्हणतात बम प्लेअरद्वारे टॅप केला जातो - पेनल्टी लोकल फंक्शन म्हणून अर्धा स्कोअर बॉम्ब टच (इव्हेंट) असल्यास (इव्हेंट.फेज == "प्रारंभ") नंतर रनटाइम: रीलटाइम: "इव्हेंटलिस्टनर (" एंटरफ्रेम ", इव्हेंट.सेल्फ)) इव्हेंट.टारजेट: रीमोव्हसेल्फ () स्कोअर = मॅथ.फ्लोअर (स्कोअर * ०.)) स्कोरटेक.टेक्स्ट.एक्सएक्स = स्कोअर एंड एंड - ऑब्जेक्ट्स डिलिट जे खाली पडले स्क्रीनचे तळाशी लोकल फंक्शन ऑफस्क्रीन (सेल्फ, इव्हेंट) जर (सेल्फ.वाय == शून्य) नंतर परतीचा शेवट परत आल्यास (सेल्फ.वाय> डिस्प्ले कॉन्टेंटहाइट + 50) तर रनटाइम: रिमूव्हन्टवेस्टलिस्टर ("एंटरफ्रेम", सेल्फ) सेल्फ: रिमोट सेल्फ () अंत समाप्त - नवीन घसरण करणारा बलून जोडा किंवा बॉम्ब लोकल फंक्शन जोडा न्यू न्यू बलूनऑरबॉम्ब () - आपण गीटहब रेपो लोकल स्टार्टएक्स = मॅथ.रॅन्डम (डिस्प्ले कॉन्टेंटविड्थ * ०.१, डिस्प्ले कॉन्टेंटविड्थ) मध्ये red_ballon.png आणि bomb.png शोधू शकता. * ०.9) जर (math.random (1,5) == 1) तर - बॉम्ब! लोकल बॉम्ब = डिस्प्ले.न्यूइमेज ("बॉम्ब.पीएनजी", स्टार्टएक्स, -300) फिजिक्स.एड्डबॉडी (बॉम्ब) बोंब.एन्टरफ्रेम = ऑफस्क्रीन रनटाइम: Eवेन्टलिस्टनर ("एंटरफ्रेम", बॉम्ब) बॉम्ब: Eवेन्टलिस्टनर ("टच", बॉम्ब टच) अन्य - बलून लोकल बलून = डिस्प्ले.न्यूइमेज ("रेड_बालून.पीएनजी", स्टार्टएक्स, -300) फिजिक्स.एड्डीबॉडी (बलून) बलून.एन्टरफ्रेम = ऑफस्क्रीन रनटाइम: Eवेन्टलिस्टनर ("एंटरफ्रेम", बलून) बलून: Eएव्हेंटलिस्टनर ("टच", बलून टच) एंड एंड - एक नवीन बलून जोडा किंवा आता बॉम्ब जोडा N न्यूबॅलूनऑरबॉम्ब () - दररोज 0.5 सेकंदात एक नवीन बलून जोडा किंवा बॉम्ब घाला. टाइमपरपरफॉर्मविथडिले (,००, Nडब्ल्यू बलूनऑरबॉम्ब, ०)

पुढील चरण

पुढील चरण म्हणजे वास्तविक Android डिव्हाइसवर गेम खेळणे. एक .apk फाइल तयार करण्यासाठी फाईल-> Android साठी बिल्ड वर क्लिक करा ... आणि फील्ड्स भरा. परिणाम एक .apk फाइल असेल जी आपण आपल्या डिव्हाइसवर कॉपी करू आणि नंतर स्थापित करू शकता. अज्ञात स्त्रोतांकडून अनुप्रयोग स्थापनेस अनुमती देण्यासाठी आपण आपले डिव्हाइस कॉन्फिगर केले आहे याची आपल्याला खात्री करणे आवश्यक आहे. यावर अ‍ॅमेझॉनकडे काही चांगले कागदपत्रे आहेत कारण आपल्याला अ‍ॅमेझॉन अ‍ॅपस्टोअर स्थापित करण्यासाठी हे सेट करणे देखील आवश्यक आहे. कोरोनाकडे अँड्रॉइड डिव्हाइसवर आपल्या अ‍ॅपवर साइन इन, बिल्ड आणि टेस्ट कसे करावे यासाठी मार्गदर्शक देखील आहे.

आपल्या डिव्हाइसवर गेम यशस्वीरित्या इन्स्टॉल केल्याने पुढील गोष्ट म्हणजे गेम सुधारणे. उदाहरणार्थ, “पॉप” किंवा “मोठा आवाज” जोडून सर्वकाही एक बलून किंवा बॉम्ब टॅप केलेला आहे असे आवाज का वापरु नये. त्यासाठी कोरोनाचे एक एपीआय आहे:मीडिया.playEventSound ().

किंवा तिसरा प्रकारचा ऑब्जेक्ट जोडण्याचा प्रयत्न का करीत नाही, सध्याचा स्कोर दुप्पट देणारी सुपर बूस्ट म्हणा किंवा काही पार्श्वभूमी संगीताचे काय?

लपेटणे

कोरोनासह गेम्स लिहिणे अगदी सरळ पुढे आहे कारण एसडीके ओपनजीएलसारख्या गोष्टी हाताळतात आणि त्यात अंगभूत 2 डी फिजिक्स इंजिनचा समावेश आहे. तसेच ल्युआ शिकणे सोपे आहे आणि किमान प्रोग्रामिंग अनुभव असणार्‍या कोणालाही कठीण होऊ नये. कोरोनाब्स वेबसाइटवर बरेच मार्गदर्शक आणि प्रशिक्षणांसह बरेच दस्तऐवजीकरण आहेत.

आमच्यापेक्षा 100 ओळींच्या कोडमध्ये कार्य करण्याचा खेळ आहे. ठीक आहे, ते कोणतीही बक्षिसे जिंकणार नाही, तथापि हे कोरोना एसडीकेची शक्ती आणि लवचिकता दर्शविते.

ज्या वापरकर्त्यांकडे आधीपासून सोनारवर्क्स ट्रू-फाय डेस्कटॉप अॅप आहे, त्यांना मोबाइल आवृत्तीसाठी विनामूल्य अपग्रेड पर्याय मिळेल.सर्वोत्कृष्ट हेडफोन्स मिळविणे हा एक आर्थिकदृष्ट्या वेदनादायक अनुभव असू श...

मागील वर्षी सोनीने एक मेट्रिक टन फोन बाजारात आणले हे आश्चर्यचकित होऊ नका, कारण मोबाइल पोर्टफोलिओचा विस्तार करताना तो आपल्या संयमांबद्दल परिचित नाही.दुर्दैवाने सोनीसाठी, तेच फोन पुन्हा एकदा विस्तृत प्र...

लोकप्रियता मिळवणे