கொரோனா SDK ஐப் பயன்படுத்தி உங்கள் முதல் Android விளையாட்டை எழுதுதல்

நூலாசிரியர்: Randy Alexander
உருவாக்கிய தேதி: 1 ஏப்ரல் 2021
புதுப்பிப்பு தேதி: 26 ஜூன் 2024
Anonim
கொரோனா SDKஐப் பயன்படுத்தி உங்கள் முதல் ஆண்ட்ராய்ட் கேமை எழுதுகிறீர்கள்!
காணொளி: கொரோனா SDKஐப் பயன்படுத்தி உங்கள் முதல் ஆண்ட்ராய்ட் கேமை எழுதுகிறீர்கள்!

உள்ளடக்கம்


கூகிள் பிளே ஸ்டோரில் மிகவும் பிரபலமான வகை எப்போதும் கேம்ஸ் ஆகும். வலை உலாவி, மின்னஞ்சல் கிளையன்ட் மற்றும் உடனடி செய்தியிடல் பயன்பாடு போன்ற முக்கிய உற்பத்தித்திறன் பயன்பாடுகளை நாம் அனைவரும் பயன்படுத்தினாலும், கேமிங் இன்னும் மொபைல் அனுபவத்தின் முக்கிய பகுதியாகவே உள்ளது. எனவே, ஆண்ட்ராய்டுக்காக உருவாக்க கற்றுக்கொள்ள விரும்பும் பலர் ஒரு விளையாட்டை உருவாக்கத் தொடங்குவதில் ஆச்சரியமில்லை. மேலும், நேர்மையாக இருக்கட்டும், ஒரு விளையாட்டு எழுதுவது ஒரு உற்பத்தி பயன்பாட்டை உருவாக்குவதை விட முழு சுமை.

Android இன் அதிகாரப்பூர்வ மொழி ஜாவா மற்றும் அதிகாரப்பூர்வ மேம்பாட்டு சூழல் Android ஸ்டுடியோ ஆகும். நீங்கள் ஜாவாவைப் பார்க்க விரும்பினால், எங்கள் ஜாவா பேசிக்ஸ் டுடோரியலை நான் பரிந்துரைக்கிறேன், மேலும் Android ஸ்டுடியோவைப் பயன்படுத்தி ஒரு பயன்பாட்டை எவ்வாறு எழுதுவது என்பதை நீங்கள் அறிய விரும்பினால், உங்கள் முதல் Android பயன்பாட்டை எழுதுவது குறித்த எங்கள் டுடோரியலைப் பார்க்க பரிந்துரைக்கிறேன். இருப்பினும், ஜாவா மற்றும் ஆண்ட்ராய்டு ஸ்டுடியோ ஆகியவை Android க்கான ஒரே வழி அல்ல. எங்கள் வழிகாட்டியில் கிடைக்கக்கூடிய மொழிகள் மற்றும் SDK களின் கண்ணோட்டத்தை நீங்கள் காணலாம்: நான் Android பயன்பாடுகளை உருவாக்க விரும்புகிறேன் - நான் எந்த மொழிகளைக் கற்றுக்கொள்ள வேண்டும்?


நிரலாக்க மொழிகள் வழிகாட்டியில் குறிப்பிடப்பட்டுள்ள SDK களில் ஒன்று கொரோனா, மூன்றாம் தரப்பு SDK முதன்மையாக விளையாட்டுகளை எழுதுவதற்காக வடிவமைக்கப்பட்டுள்ளது. ஜாவாவுக்குப் பதிலாக, கொரோனா லுவாவைப் பயன்படுத்துகிறது, இது வேகமான ஸ்கிரிப்டிங் மொழியாகும், இது இன்னும் சக்திவாய்ந்ததைக் கற்றுக்கொள்ள எளிதானது. இருப்பினும், லுவாவைப் பயன்படுத்தும் ஒரே மொபைல் கேமிங் எஸ்.டி.கே கொரோனா அல்ல, மற்ற நன்கு அறியப்பட்ட எடுத்துக்காட்டுகளில் கோகோஸ் 2 டி-எக்ஸ், மர்மலேட் மற்றும் கிடெரோஸ் ஆகியவை அடங்கும்.

பதிவிறக்கி நிறுவவும்

கொரோனாவுடன் தொடங்க நீங்கள் SDK ஐ பதிவிறக்கி நிறுவ வேண்டும். கொரோனா வலைத்தளத்திற்குச் சென்று பதிவிறக்க பொத்தானை அழுத்தவும். கிட்டைப் பதிவிறக்குவதற்கு முன்பு நீங்கள் ஒரு கணக்கை உருவாக்க வேண்டும் (இது இலவசம்). உங்கள் நிரலை முன்மாதிரியாக இயக்குவதை விட உண்மையான .apk கோப்பை உருவாக்க விரும்பினால், நீங்கள் ஜாவா 7 ஐ நிறுவ வேண்டும், இருப்பினும் நீங்கள் Android SDK ஐ நிறுவ தேவையில்லை. ஜாவா 7 டெவலப்மென்ட் கிட் நிறுவ ஆரக்கிளின் வலைத்தளத்திற்குச் சென்று, “ஜாவா எஸ்இ டெவலப்மென்ட் கிட் 7u79 called எனப்படும் பகுதியைத் தேடி, உங்கள் கணினிக்கான பதிப்பைப் பதிவிறக்கவும்.


நீங்கள் கொரோனாவை நிறுவியவுடன் அதை செயல்படுத்த வேண்டும். இது ஒரு முறை செயல்முறை, இது இலவசம். கொரோனா சிமுலேட்டரைத் தொடங்கி உரிமத்தை ஒப்புக் கொள்ளுங்கள். பதிவிறக்கத்திற்கு நீங்கள் பயன்படுத்திய மின்னஞ்சல் முகவரி மற்றும் கடவுச்சொல்லை உள்ளிட்டு உள்நுழை என்பதைக் கிளிக் செய்க.

திட்டத்தைத் தொடங்குகிறது

கொரோனா சிமுலேட்டருக்குள் இருந்து “புதிய திட்டம்” என்பதைக் கிளிக் செய்க. உங்கள் பயன்பாட்டிற்கான பெயரை “பயன்பாட்டு பெயர்:” புலத்தில் உள்ளிட்டு, மீதமுள்ள அமைப்புகளை அவற்றின் இயல்புநிலையில் விடவும். “சரி” என்பதைக் கிளிக் செய்க.

இப்போது மூன்று ஜன்னல்கள் தோன்றும். முதல் இரண்டு கொரோனா சிமுலேட்டர் மற்றும் கொரோனா சிமுலர் வெளியீடு. கொரோனா உங்கள் திட்டத்திற்கான கோப்புகளைக் காட்டும் கோப்பு எக்ஸ்ப்ளோரர் சாளரத்தையும் திறக்கும்.

திட்ட கோப்பகத்தில் உள்ள பெரும்பாலான கோப்புகள் (அவற்றில் சில 23) பயன்பாட்டு ஐகானுக்கானவை! இப்போது எங்களுக்கு மிக முக்கியமான கோப்பு main.lua, இங்குதான் எங்கள் பயன்பாட்டிற்கான குறியீட்டை எழுதுவோம்.

லுவா அறிமுகம்

குறியீட்டை எழுதுவதற்கு முன்பு, நாங்கள் லுவாவின் விசில்-ஸ்டாப் சுற்றுப்பயணத்தை மேற்கொள்ள வேண்டும். லுவா மொழிபெயர்ப்பாளர் (இது ஒரு ஸ்கிரிப்டிங் மொழி என்பதை நினைவில் கொள்ளுங்கள், தொகுக்கப்பட்ட மொழி அல்ல) விண்டோஸ், ஓஎஸ் எக்ஸ் மற்றும் லினக்ஸுக்கு கிடைக்கிறது. இருப்பினும் இது கொரோனாவுடன் கட்டமைக்கப்பட்டுள்ளது, எனவே இந்த நேரத்தில் நீங்கள் கூடுதலாக எதையும் நிறுவ தேவையில்லை. லுவாவுடன் விளையாடுவதற்கான எளிதான வழி ஆன்லைன் லைவ் டெமோவைப் பயன்படுத்துவதாகும்.

நீங்கள் ஆன்லைனில் லுவாவைப் பற்றி நிறைய நல்ல பயிற்சிகளைக் காணலாம், மேலும் நீங்கள் லுவா குறிப்பு கையேடு, லுவாவில் புரோகிராமிங், தி.லுவா டுடோரியல் மற்றும் தி டுடோரியல்ஸ் பாயிண்ட் லுவா டுடோரியலைப் பார்க்க வேண்டும்.

லுவாவின் சில முக்கிய அம்சங்களைக் காண்பிக்கும் ஒரு சிறிய லுவா திட்டம் இங்கே:

உள்ளூர் செயல்பாடு டபுள்இட் (எக்ஸ்) ஐ = 1,10,1 க்கு x * 2 முடிவுக்கு x = டபுள்இட் (i) என்றால் (x == 10) பின்னர் அச்சிடு ("பத்து") வேறு அச்சிடு (இரட்டைஇட் (i)) முடிவு முடிவு

மேலே உள்ள குறியீடு மூன்று முக்கியமான லுவா கட்டுமானங்களைக் காட்டுகிறது: செயல்பாடுகள், சுழல்கள் மற்றும் அறிக்கைகள் என்றால். செயல்பாடு doubleIt () இது மிகவும் எளிதானது, இது அளவுருவில் அனுப்பப்பட்டதை இரட்டிப்பாக்குகிறது எக்ஸ்.

முக்கிய குறியீடு a ஐந்து 1 முதல் 10 வரை வளைய. இது அழைக்கிறது doubleIt () ஒவ்வொரு மறு செய்கைக்கும். வருவாய் மதிப்பு 10 ஆக இருந்தால் (அதாவது எப்போது நான் 5) பின்னர் குறியீடு “பத்து” ஐ அச்சிடுகிறது, இல்லையெனில் அது அதன் முடிவை அச்சிடுகிறது doubleIt ().

உங்களுக்கு ஏதேனும் குறியீட்டு அனுபவம் இருந்தால், எடுத்துக்காட்டு குறியீடு பின்பற்ற போதுமானதாக இருக்க வேண்டும். நீங்கள் சில அடிப்படை நிரலாக்கங்களைக் கற்றுக் கொள்ள விரும்பினால், உங்கள் திறமைகளை வளர்த்துக் கொள்ள மேலே இணைக்கப்பட்ட சில ஆதாரங்களைப் பயன்படுத்துமாறு நான் பரிந்துரைக்கிறேன்.

விளையாட்டு எழுதுதல்

கொரோனாவில் அடிப்படை நிரல்களை எழுதுவது எளிது. ஒரே ஒரு கோப்பில் மட்டுமே நீங்கள் கவலைப்பட வேண்டும், main.lua, கொரோனா அனைத்து கனமான தூக்கும் செயல்களையும் செய்யட்டும். நாம் எழுதப் போகும் விளையாட்டு ஒரு எளிய “தட்டு” விளையாட்டு. ஒரு பலூன் அல்லது வெடிகுண்டு திரையில் தோல்வியடையும். வீரர் அவர்கள் ஒரு புள்ளியை அடித்த பலூனைத் தட்டினால், அவர்கள் ஒரு குண்டைத் தட்டினால், மதிப்பெண் 2 ஆல் வகுக்கப்படும், அபராதம். குறியீட்டை எழுத நீங்கள் திருத்த வேண்டும் main.lua. இதை நீங்கள் எந்த உரை திருத்தியிலும் செய்யலாம்.

கொரோனா எஸ்.டி.கே ஒரு உள்ளமைக்கப்பட்ட 2 டி இயற்பியல் இயந்திரத்தைக் கொண்டுள்ளது, இது கட்டிட விளையாட்டுகளை மிகவும் எளிதாக்குகிறது. விளையாட்டை எழுதுவதற்கான முதல் படி இயற்பியல் இயந்திரத்தை துவக்குவது:

உள்ளூர் இயற்பியல் = தேவை ("இயற்பியல்") இயற்பியல். ஸ்டார்ட் ()

குறியீடு மிகவும் சுய விளக்கமளிக்கும். தொகுதி இயற்பியல் ஏற்றப்பட்டு துவக்கப்படுகிறது, இது மாறிக்கு ஒதுக்கப்படுகிறது இயற்பியல். இயந்திரத்தை இயக்கphysics.start () என்று அழைக்கப்படுகிறது.

அடுத்து சில எளிய மாறிகள் உருவாக்குகிறோம், இது இந்த எளிய விளையாட்டுக்கு மட்டுமல்ல, மிகவும் சிக்கலான விளையாட்டுகளுக்கும் பயனுள்ளதாக இருக்கும். halfW மற்றும் halfH திரை அகலத்தின் பாதி மற்றும் திரை உயரத்தின் பாதி மதிப்புகளை வைத்திருங்கள்:

halfW = display.contentWidth * 0.5 halfH = display.contentHeight * 0.5

தி காட்சி பொருள் என்பது முன் வரையறுக்கப்பட்ட பொருளாகும், இது கொரோனா உலகளவில் கிடைக்கிறது.

இப்போது திரையில் ஏதேனும் நடக்க வைக்கும் முதல் படி வருகிறது:

உள்ளூர் bkg = display.newImage ("night_sky.png", halfW, halfH)

போன்ற பண்புகள் contentHeight மற்றும் contentWidth, தி காட்சி பொருள் பல பயனுள்ள செயல்பாடுகளையும் கொண்டுள்ளது. தி newImage () செயல்பாடு ஒரு படக் கோப்பைப் படிக்கிறது (இந்த விஷயத்தில் ஒரு .png) அதை திரையில் காண்பிக்கும். காட்சி பொருள்கள் அடுக்குகளில் வழங்கப்படுகின்றன, எனவே இது நாம் திரையில் வைக்கும் முதல் படம் என்பதால் அது எப்போதும் பின்னணியாக இருக்கும் (குறியீடு அதை மாற்ற வெளிப்படையாக ஏதாவது செய்யாவிட்டால்). அளவுருக்கள் halfW மற்றும் halfH படத்தை நடுவில் வைக்க கொரோனாவிடம் சொல்லுங்கள்.

இந்த கட்டத்தில் நீங்கள் எமுலேட்டரில் குறியீட்டை இயக்கலாம் மற்றும் பின்னணி படத்தைப் பார்க்கலாம். நீங்கள் கோப்பைச் சேமித்தால், கோப்பு மாறிவிட்டதை முன்மாதிரி கவனித்து மறுதொடக்கம் செய்ய முன்வருவார். அது நடக்கவில்லை என்றால், கோப்பு-> மறுதொடக்கம் பயன்படுத்தவும்.

பலூன்களைத் தட்டுவதற்கு பயனர் புள்ளிகளைப் பெறுவார் என்பதால், நாங்கள் ஒரு மதிப்பெண் மாறியைத் துவக்கி, திரையில் மதிப்பெண்ணைக் காண்பிக்க வேண்டும்:

மதிப்பெண் = 0 மதிப்பெண் உரை = display.newText (மதிப்பெண், பாதி, 10)

மதிப்பெண் கற்பனையாக பெயரிடப்பட்ட மாறியில் வைக்கப்படும் அடித்த,மற்றும் scoreText மதிப்பெண் காண்பிக்கும் பொருள். போல் newImage (), newtext () திரையில் ஏதாவது ஒன்றை வைக்கவும், இந்த விஷயத்தில் உரை. என்பதால் scoreText உலகளாவிய மாறி என்றால் எந்த நேரத்திலும் உரையை மாற்றலாம். ஆனால் நாங்கள் விரைவில் அதைப் பெறுவோம்.

நீங்கள் முன்மாதிரியை மீண்டும் தொடங்கலாம் மற்றும் திரையின் மேற்புறத்தை நோக்கி 0 காட்சி மதிப்பெண்ணைக் காணலாம்.

இடது: பின்னணி. வலது: பின்னணி மற்றும் மதிப்பெண்.

இப்போது இன்னும் கொஞ்சம் தந்திரமான ஒன்று வந்துள்ளது, ஆனால் கவலைப்பட வேண்டாம் நான் அதை வரியாக விளக்குவேன்:

உள்ளூர் செயல்பாடு பலூன் டச் (நிகழ்வு) என்றால் (event.phase == "தொடங்கியது") பின்னர் இயக்க நேரம்: removeEventListener ("enterFrame", event.self) event.target:removeSelf () மதிப்பெண் = மதிப்பெண் + 1 மதிப்பெண் உரை. உரை = மதிப்பெண் முடிவு

மேலே உள்ள குறியீடு எனப்படும் செயல்பாட்டை வரையறுக்கிறது balloonTouched () ஒவ்வொரு முறையும் பலூன் தட்டும்போது அழைக்கப்படும். பலூன் தட்டும்போது ஒவ்வொரு முறையும் இந்த செயல்பாட்டை அழைக்குமாறு கொரோனாவிடம் நாங்கள் இதுவரை சொல்லவில்லை, அது பின்னர் வரும், ஆனால் நாம் இதைச் செய்யும்போது அழைக்கப்படும் செயல்பாடு.

தட்டுதல் அல்லது தொடு நிகழ்வுகள் பல கட்டங்களைக் கொண்டுள்ளன, பல இழுப்பதை ஆதரிக்கின்றன. பயனர் ஒரு பொருளின் மீது விரலை வைக்கிறார், இது “தொடங்கிய” கட்டம். அவர்கள் எந்த திசையிலும் விரலை சறுக்கினால், அதுவே “நகர்த்தப்பட்ட” கட்டமாகும். பயனர் திரையில் இருந்து விரலைத் தூக்கும்போது, ​​அதுதான் “முடிந்தது” கட்டம்.

முதல் வரி balloonTouched () காசோலைகள் நாங்கள் “தொடங்கிய” கட்டத்தில் இருக்கிறோம். பலூனை அகற்றி, விரைவில் மதிப்பெண்ணை அதிகரிக்க விரும்புகிறோம். "முடிந்தது" போன்ற பிற கட்டங்களுக்கு செயல்பாடு மீண்டும் அழைக்கப்பட்டால், செயல்பாடு எதுவும் செய்யாது.

உள்ளேஎன்றால் அறிக்கை குறியீட்டின் நான்கு கோடுகள். கடைசி இரண்டையும் முதலில் எளிமையாகக் கையாள்வோம்.மதிப்பெண் = மதிப்பெண் + 1 மதிப்பெண்ணை ஒவ்வொன்றாக அதிகரிக்கிறது மற்றும்scoreText.text = மதிப்பெண் புதிய மதிப்பெண்ணைப் பிரதிபலிக்க திரையில் மதிப்பெண் உரையை மாற்றுகிறது. நான் அதை எப்படி சொன்னேன் என்பதை நினைவில் கொள்கscoreText உலகளாவியதாக இருந்தது, எங்கும் அணுகலாம், அதுதான் நாங்கள் இங்கே செய்கிறோம்.

இப்போது முதல் இரண்டு வரிகளுக்கு. திரையின் அடிப்பகுதியில் ஒரு பலூன் அல்லது வெடிகுண்டு விழுந்தால், அது பயன்பாட்டின் நினைவகத்தில் இன்னும் உள்ளது, அதை நீங்கள் பார்க்க முடியாது. விளையாட்டு முன்னேறும்போது இந்த ஆஃப்-ஸ்கிரீன் பொருட்களின் எண்ணிக்கை படிப்படியாக அதிகரிக்கும். ஆகவே, பொருள்களின் பார்வைக்கு வெளியே வந்தவுடன் அவற்றை நீக்கும் ஒரு பொறிமுறையை நாம் கொண்டிருக்க வேண்டும். என்று அழைக்கப்படும் ஒரு செயல்பாட்டில் அதை செய்கிறோம்திரைக்கப்பாற்பட்ட, நாங்கள் இதுவரை எழுதவில்லை. அந்த செயல்பாடு விளையாட்டின் போது ஒரு சட்டத்திற்கு ஒரு முறை அழைக்கப்படும். ஒரு பலூன் தட்டப்பட்டவுடன், அதை நீக்கிவிட்டு, பலூன் ஆஃப்ஸ்கிரீனில் சென்றுவிட்டதா என சரிபார்க்கும் அழைப்பை அகற்ற வேண்டும்.

வரிevent.target:removeSelf () பலூனை நீக்குகிறது. ஒரு தொடு நிகழ்வு நிகழும்போது, ​​கேட்பவரின் செயல்பாட்டின் அளவுருக்களில் ஒன்றுநிகழ்வு அளவுரு. இது நிகழ்வைப் பற்றிய செயல்பாட்டையும் அது எந்த வகை நிகழ்வு என்பதையும் சொல்கிறது, எ.கா.event.phase. எந்த பலூன் தட்டப்பட்டது என்பதையும் இது சொல்கிறது,event.target. திremoveSelf () செயல்பாடு அது சொல்வதைச் செய்கிறது, அது பொருளை நீக்குகிறது (இந்த விஷயத்தில் ஒரு பலூன்).

அதற்கு முந்தைய வரி “என்டர்பிரேம்” கேட்பவரை நீக்குகிறது, இது பலூன் திரையின் அடிப்பகுதியில் இருந்து விழுந்துவிட்டதா என்று பார்க்க ஒவ்வொரு சட்டகமும் அழைக்கப்படுகிறது. நாம் எழுத வரும்போது அதை இன்னும் விரிவாகப் பார்ப்போம்திரைக்கப்பாற்பட்ட கேட்பவரின் செயல்பாடு.

எனவே, மறுபரிசீலனை செய்ய.balloonTouched ()இது தொடு வரிசையின் ஆரம்பம் என்பதை சரிபார்க்கிறது. இது "என்டர்பிரேம்" கேட்பவரை நீக்குகிறது, இது பலூன் திரையின் அடிப்பகுதியில் இருந்து விழுந்துவிட்டதா என்பதைப் பார்க்க ஒவ்வொரு சட்டமும் என்று அழைக்கப்படுகிறது. இது பலூனை நீக்குகிறது, மதிப்பெண்ணை அதிகரிக்கிறது மற்றும் புதிய மதிப்பெண்ணைக் காட்டுகிறது.

அது பலூன்களுக்கானது, இப்போது குண்டுகளுக்கு ஒத்த ஒன்று நமக்குத் தேவை:

உள்ளூர் செயல்பாடு வெடிகுண்டு (நிகழ்வு) என்றால் (event.phase == "தொடங்கியது") பின்னர் இயக்க நேரம்: removeEventListener ("enterFrame", event.self) event.target:removeSelf () score = math.floor (score * 0.5) scoreText.text = மதிப்பெண் முடிவு

குறியீட்டை அதிகரிப்பதை விட, மதிப்பெண் 0.5 ஆல் பெருக்கப்படுகிறது (அதாவது 2 ஆல் வகுக்கப்படுகிறது) தவிர, குறியீடு மிகவும் ஒத்ததாக இருப்பதை நீங்கள் காண முடியும். தி math.floor () செயல்பாடு முழு எண்ணுக்கு மதிப்பெண்ணைக் குறைக்கிறது. எனவே வீரர் 3 மதிப்பெண் பெற்றிருந்தால், ஒரு குண்டைத் தட்டினால், புதிய மதிப்பெண் 1 ஆக இருக்கும், 1.5 அல்ல.

நான் குறிப்பிட்டுள்ளேன் திரைக்கப்பாற்பட்ட () முந்தைய செயல்பாடு. ஒரு பொருள் திரையில் இருந்து விலகிவிட்டதா என்பதைச் சரிபார்க்க இந்த செயல்பாடு ஒவ்வொரு சட்டகத்திற்கும் அழைக்கப்படும். இங்கே குறியீடு:

உள்ளூர் செயல்பாடு ஆஃப்ஸ்கிரீன் (சுய, நிகழ்வு) என்றால் (self.y == nil) பின்னர் முடிவடையும் (self.y> display.contentHeight + 50) பின்னர் இயக்க நேரம்: removeEventListener ("enterFrame", self) self: removeSelf () end end

கம்ப்யூட்டிங்கில் ரேஸ் நிபந்தனை எனப்படும் சூழ்நிலை உள்ளது. இங்குதான் இரண்டு விஷயங்கள் நடக்கப் போகின்றன, ஆனால் ஒன்று முதலில் நடக்கலாம், அல்லது சில சமயங்களில் மற்றொன்று முதலில் நடக்கலாம். அது ஒரு இனம். சில பந்தய நிலைமைகள் காணப்படாதவை, ஏனென்றால் ஒன்று எப்போதும் முதலில் நடக்கும் என்று தோன்றுகிறது, ஆனால் அவை ஒரு நாளில் சுவாரஸ்யமான பிழைகளை ஏற்படுத்தக்கூடும், சரியான நிலைமைகளின் கீழ், மற்றொன்று முதலில் நடக்கிறது, பின்னர் கணினி உடைகிறது!

இந்த எளிய விளையாட்டில் ஒரு பந்தய நிலை உள்ளது, ஏனெனில் இரண்டு விஷயங்கள் ஒருவருக்கொருவர் மிக நெருக்கமாக நடக்கக்கூடும்: ஒரு பலூன் தட்டப்பட்டது மற்றும் திரைக்கப்பாற்பட்ட () பலூன் திரையில் இருந்து விலகிவிட்டதா என்று பார்க்க செயல்பாடு அழைக்கப்படுகிறது. இதன் விளைவாக பலூனை நீக்குவதற்கான குறியீட்டை அழைக்கலாம், பின்னர் திரைக்கப்பாற்பட்ட () செயல்பாடு அழைக்கப்படுகிறது (இது வினாடிக்கு 30 முறை போல நடக்கும்). நிகழ்வுகளின் இந்த ஒற்றைப்படை வரிசையைச் சுற்றி வர திரைக்கப்பாற்பட்ட () செயல்பாடு என்பதை சரிபார்க்க வேண்டும் ஒய் பொருளின் மதிப்பு ஒன்றுமே (பூஜ்யம்) அல்லது இல்லை. அது இருந்தால் ஒன்றுமே பொருள் ஏற்கனவே நீக்கப்பட்டுவிட்டது என்று அர்த்தம், எனவே தொடர்ந்து செல்லுங்கள், இவை நாம் தேடும் டிராய்டுகள் அல்ல.

பொருள் இன்னும் இயக்கத்தில் இருந்தால், அதன் நிலையைச் சரிபார்க்கவும், அது திரையில் இருந்து 50 பிக்சல்கள் சென்றிருந்தால், அதை நீக்கி கேட்பவரை அகற்றவும் திரைக்கப்பாற்பட்ட () இந்த பொருளுக்கு செயல்பாடு மீண்டும் அழைக்கப்படாது. அதை உறுதிப்படுத்த குறியீடுதிரைக்கப்பாற்பட்ட () ஒவ்வொரு சட்டமும் குறியீட்டின் அடுத்த பிரிவின் பகுதியாகும்.

இந்த விளையாட்டின் முழு முன்மாதிரி என்னவென்றால், புதிய பலூன்கள் அல்லது குண்டுகள் தொடர்ந்து திரையில் கீழே விழும். எனவே ஒரு புதிய பலூன் அல்லது புதிய குண்டை உருவாக்கும் ஒரு செயல்பாடு நமக்குத் தேவை:

உள்ளூர் செயல்பாடு addNewBalloonOrBomb () local startX = math.random (display.contentWidth * 0.1, display.contentWidth * 0.9) if (math.random (1,5) == 1) என்றால் - BOMB! உள்ளூர் வெடிகுண்டு = display.newImage ("omb.png ", startX, -300) physics.addBody (குண்டு) குண்டு. enterFrame = ஆஃப்ஸ்கிரீன் இயக்க நேரம்: addEventListener (" enterFrame ", குண்டு) வெடிகுண்டு: addEventListener (" தொடு ", குண்டு தொட்டது) வேறு - பலூன் உள்ளூர் பலூன் = display.newImage ("red_balloon.png", startX, -300) physics.addBody (பலூன்) balloon.enterFrame = offscreen இயக்க நேரம்: addEventListener ("enterFrame", பலூன்) பலூன்: addEventListener (addEventListener) பலூன் டச்) இறுதி முடிவு

செயல்பாட்டின் முதல் வரி பலூன் எங்கிருந்து விழும் என்பதை தீர்மானிக்கிறது எக்ஸ் விமானம். பலூன் அல்லது குண்டு எப்போதும் நடுவில் விழுந்தால், அது மிகவும் சுவாரஸ்யமாக இருக்காது! அதனால்எக்ஸ்தொடங்கு திரை அகலத்தின் 10 சதவீதம் முதல் 90 சதவீதம் வரை ஒரு சீரற்ற எண்.

அடுத்து ஒரு சீரற்ற எண் 1 முதல் 5 வரை எடுக்கப்படுகிறது.எண் 1 என்றால் ஒரு குண்டு கைவிடப்படும். அது 2, 3, 4 அல்லது 5 என்றால் ஒரு பலூன் கைவிடப்படும். இதன் பொருள் வெடிகுண்டுகள் 20 சதவிகித நேரம் கைவிடப்படும்.

வெடிகுண்டு மற்றும் பலூன் குறியீடு மிகவும் ஒத்தவை. முதலில் படம் (ஒரு குண்டு அல்லது பலூன்) பயன்படுத்தி காட்டப்படும்newImage(). அதன் எக்ஸ் நிலை என்பதுஎக்ஸ்தொடங்கு அதன் போது ஒய் நிலை -300 ஆக அமைக்கப்பட்டுள்ளது, அதாவது திரையின் மேற்புறத்தில் இருந்து. அதற்கான காரணம் என்னவென்றால், பொருள் திரைப் பகுதிக்கு வெளியே இருந்து புலப்படும் பகுதிக்குள் விழுந்து பின்னர் கீழே இருந்து வெளியேற வேண்டும். நாம் 2 டி இயற்பியல் இயந்திரத்தைப் பயன்படுத்துவதால், பொருளை வீழ்த்துவதற்கான ஆரம்ப தூரத்தை கொஞ்சம் கொடுப்பது நல்லது, எனவே அது சிறிது வேகத்தைப் பெறலாம்.

அழைப்புphysics.addBody () ஏற்றப்பட்ட படத்தை எடுக்கும் newImage () மற்றும் அதை இயற்பியல் இயந்திரத்தில் ஒரு பொருளாக மாற்றுகிறது. இது மிகவும் சக்தி வாய்ந்தது. எந்தவொரு படக் கோப்பையும் அழைப்பதன் மூலம் ஈர்ப்பு மற்றும் மோதல்களுக்கு பதிலளிக்கும் உடலாக உருவாக்க முடியும்physics.addBody ().

வெடிகுண்டு அல்லது பலூன் குறியீட்டின் கடைசி மூன்று வரிகள் கேட்போரை அமைக்கின்றன. அமைத்தல்enterFrame ஒவ்வொரு சட்டத்தையும் எந்த அழைப்பையும் அழைக்க வேண்டும் என்று கொரோனாவிடம் சொத்து கூறுகிறதுநிகழ்நேர: addEventListener () அதை அமைக்கிறது. கடைசியாக அழைப்புபலூன்: addEventListener () குண்டு அல்லது பலூன் தொட்டால் எந்த செயல்பாட்டை அழைக்க வேண்டும் என்று கொரோனாவிடம் கூறுகிறது.

இப்போது விளையாட்டு கிட்டத்தட்ட முடிந்தது. எங்களுக்கு இன்னும் இரண்டு கோடுகள் தேவை:

addNewBalloonOrBomb () timer.performWithDelay (500, addNewBalloonOrBomb, 0)

முதல் வரி வெளிப்படையாக அழைப்பதன் மூலம் முதல் குண்டு அல்லது பலூன் வீழ்ச்சியை ஏற்படுத்துகிறதுaddNewBalloonOrBomb (). இரண்டாவது வரி ஒரு டைமரை அமைக்கும், இது அழைக்கும்addNewBalloonOrBomb () ஒவ்வொரு அரை விநாடிக்கும் (500 மில்லி விநாடிகள்). இதன் பொருள் ஒவ்வொரு அரை விநாடிக்கும் ஒரு புதிய பலூன் அல்லது குண்டு விழும்.

நீங்கள் இப்போது எமுலேட்டரில் விளையாட்டை இயக்கலாம்.

Main.lua க்கான முழுமையான பட்டியல் இங்கே, இந்த விளையாட்டிற்கான முழு திட்ட மூலக் குறியீட்டை கிட்ஹப்பில் இங்கே காணலாம்.

-------------------------------------------------- --------------------------------------- - வீழ்ச்சி பலூன் மற்றும் வெடிகுண்டு விளையாட்டு - கேரி சிம்ஸ் எழுதியது - ------------------------------------------- ---------------------------------------------- - தொடங்குங்கள் இயற்பியல் இயந்திரம் உள்ளூர் இயற்பியல் = தேவை ("இயற்பியல்") இயற்பியல்.ஸ்டார்ட் () - திரை அகலத்தையும் உயரத்தையும் பாதியாகக் கணக்கிடுங்கள் WW = display.contentWidth * 0.5 halfH = display.contentHeight * 0.5 - பின்னணியை அமைக்கவும் bkg = display.newImage ("night_sky.png", halfW, halfH) - ஸ்கோர் ஸ்கோர் = 0 ஸ்கோர் டெக்ஸ்ட் = டிஸ்ப்ளே.நியூடெக்ஸ்ட் (ஸ்கோர், பாதி டபிள்யூ, 10) - பலூன் பிளேயரைத் தட்டும்போது அழைக்கப்படுகிறது - 1 உள்ளூர் செயல்பாடு பலூன் டச் மூலம் ஸ்கோரை அதிகரிக்கவும் ( நிகழ்வு) என்றால் (event.phase == "தொடங்கியது") பின்னர் இயக்க நேரம்: removeEventListener ("enterFrame", event.self) event.target:removeSelf () score = score + 1 scoreText.text = score end end - போது அழைக்கப்படும் வெடிகுண்டு வீரரால் தட்டப்பட்டது - பெனால்டி உள்ளூர் செயல்பாடாக அரை மதிப்பெண் குண்டு தொட்டது (நிகழ்வு) என்றால் (நிகழ்வு.பாஸ் == "தொடங்கியது") பின்னர் இயக்க நேரம்: removeEventListener ("enterFrame", event.self) event.target:removeSelf () score = math.floor (மதிப்பெண் * 0.5) scoreText.text = score end end - விழுந்த பொருட்களை நீக்கு திரையின் அடிப்பகுதி உள்ளூர் செயல்பாடு ஆஃப்ஸ்கிரீன் (சுய, நிகழ்வு) என்றால் (self.y == இல்லை) பின்னர் முடிவடையும் (self.y> display.contentHeight + 50) பின்னர் இயக்க நேரம்: removeEventListener ("enterFrame", self) self: removeSelf () இறுதி முடிவு - ஒரு புதிய வீழ்ச்சி பலூன் அல்லது குண்டு உள்ளூர் செயல்பாட்டைச் சேர்க்கவும் addNewBalloonOrBomb () - கிட்ஹப் ரெப்போ லோக்கல் ஸ்டார்ட்எக்ஸ் = கணித.ராண்டம் (display.contentWidth * 0.1, display.contentWidth * 0.9) if (math.random (1,5) == 1) என்றால் - BOMB! உள்ளூர் வெடிகுண்டு = display.newImage ("omb.png ", startX, -300) physics.addBody (குண்டு) வெடிகுண்டு. - பலூன் உள்ளூர் பலூன் = display.newImage ("red_balloon.png", startX, -300) இயற்பியல். balloonTouched) end end - இப்போது ஒரு புதிய பலூன் அல்லது குண்டைச் சேர்க்கவும் addNewBalloonOrBomb () - ஒவ்வொரு 0.5 விநாடிக்கும் ஒரு புதிய பலூன் அல்லது குண்டைச் சேர்க்கவும் டைமர்.பெர்ஃபார்ம் வித் டெலே (500, addNewBalloonOrBomb, 0)

அடுத்த படிகள்

அடுத்த கட்டம் உண்மையான Android சாதனத்தில் விளையாட்டை விளையாடுவது. ஒரு .apk கோப்பை உருவாக்க கோப்பு-> Android க்கான கட்டடம் என்பதைக் கிளிக் செய்து புலங்களை நிரப்பவும். இதன் விளைவாக .apk கோப்பாக இருக்கும், அதை நீங்கள் உங்கள் சாதனத்தில் நகலெடுத்து நிறுவலாம். அறியப்படாத மூலங்களிலிருந்து பயன்பாட்டை நிறுவ அனுமதிக்க உங்கள் சாதனத்தை உள்ளமைத்துள்ளீர்கள் என்பதை உறுதிப்படுத்த வேண்டும். அமேசான் சில நல்ல ஆவணங்களைக் கொண்டுள்ளது, ஏனெனில் அமேசான் ஆப்ஸ்டோரை நிறுவ இதை நீங்கள் அமைக்க வேண்டும். Android சாதனங்களில் உங்கள் பயன்பாட்டை எவ்வாறு கையொப்பமிடுவது, உருவாக்குவது மற்றும் சோதிப்பது என்பதற்கான வழிகாட்டியும் கொரோனாவில் உள்ளது.

உங்கள் சாதனத்தில் விளையாட்டு வெற்றிகரமாக நிறுவப்பட்டவுடன், அடுத்து செய்ய வேண்டியது விளையாட்டை மேம்படுத்துவதாகும். எடுத்துக்காட்டாக, பலூன் அல்லது வெடிகுண்டு தட்டப்பட்ட அனைத்தையும் “பாப்” அல்லது “பேங்” ஒலியை ஏன் சேர்க்க முயற்சிக்கக்கூடாது. கொரோனாவுக்கு ஒரு ஏபிஐ உள்ளது:media.playEventSound ().

அல்லது மூன்றாவது வகை பொருளைச் சேர்க்க ஏன் முயற்சிக்கக்கூடாது, தற்போதைய மதிப்பெண்ணை இரட்டிப்பாக்கும் சூப்பர் பூஸ்ட் என்று சொல்லுங்கள் அல்லது சில பின்னணி இசையைப் பற்றி எப்படி?

ராப்-அப்

கொரோனாவுடன் கேம்களை எழுதுவது மிகவும் நேராக முன்னோக்கி உள்ளது, ஏனெனில் எஸ்.டி.கே ஓபன்ஜிஎல் போன்றவற்றைக் கையாளுகிறது, மேலும் இது ஒரு உள்ளமைக்கப்பட்ட 2 டி இயற்பியல் இயந்திரத்தை உள்ளடக்கியது. மேலும் லுவா கற்றுக்கொள்வது எளிது, மேலும் குறைந்தபட்ச நிரலாக்க அனுபவமுள்ள எவருக்கும் கடினமாக இருக்கக்கூடாது. கொரோனலாப்ஸ் இணையதளத்தில் ஏராளமான வழிகாட்டிகள் மற்றும் பயிற்சிகள் உட்பட ஏராளமான ஆவணங்கள் உள்ளன.

100 க்கும் குறைவான குறியீடுகளில் எங்களிடம் வேலை செய்யும் விளையாட்டு உள்ளது. சரி, இது எந்த பரிசுகளையும் வெல்லப்போவதில்லை, இருப்பினும் இது கொரோனா SDK இன் ஆற்றலையும் நெகிழ்வுத்தன்மையையும் காட்டுகிறது.

புதுப்பிப்பு, அக்டோபர் 11, 2019 (10:10 AM ET):ஒன்பிளஸ் 7 டி புரோ அறிமுகப்படுத்தப்பட்டபோது அதன் ஆண்ட்ராய்டு 10 புதுப்பிப்பு திட்டங்களை மேடையில் வெளிப்படுத்திய பின்னர், ஒன்ப்ளஸ் தனது கருத்துக்களை சற்று ...

சில நேரங்களில் நாங்கள் எங்கள் Android சாதனங்களில் Google இன் மொபைல் O ஐ எப்போதும் இயக்குவது போல் உணர்கிறோம். இருப்பினும், முதல் அதிகாரப்பூர்வ ஆண்ட்ராய்டு தொலைபேசி நுகர்வோர் கடைகளில் வாங்குவதற்கு அறிமு...

இன்று பாப்