করোনার এসডিকে ব্যবহার করে আপনার প্রথম অ্যান্ড্রয়েড গেমটি রচনা করা হচ্ছে

লেখক: Randy Alexander
সৃষ্টির তারিখ: 1 এপ্রিল 2021
আপডেটের তারিখ: 26 জুন 2024
Anonim
করোনার এসডিকে ব্যবহার করে আপনার প্রথম অ্যান্ড্রয়েড গেমটি রচনা করা হচ্ছে - অ্যাপস
করোনার এসডিকে ব্যবহার করে আপনার প্রথম অ্যান্ড্রয়েড গেমটি রচনা করা হচ্ছে - অ্যাপস

কন্টেন্ট


গুগল প্লে স্টোরটিতে সর্বাধিক জনপ্রিয় বিভাগটি সর্বদা গেমস। যদিও আমরা সবাই সম্ভবত একটি ওয়েব ব্রাউজার, ইমেল ক্লায়েন্ট এবং তাত্ক্ষণিক বার্তাপ্রেরণ অ্যাপ্লিকেশন, যেমন গেমিং এখনও মোবাইল অভিজ্ঞতার একটি গুরুত্বপূর্ণ অঙ্গ হিসাবে ব্যবহার করি। সুতরাং অবাক হওয়ার কিছু নেই যে অ্যান্ড্রয়েডের জন্য বিকাশ করতে শিখতে চাইছেন এমন অনেক লোক গেম তৈরি করে শুরু করতে চান। এছাড়াও, আসুন সত্য কথা বলা যাক, একটি গেম লিখতে উত্পাদনশীলতা অ্যাপ্লিকেশন বিকাশের চেয়ে সম্পূর্ণ বোঝা বেশি মজাদার!

অ্যান্ড্রয়েডের সরকারী ভাষা জাভা এবং সরকারী বিকাশের পরিবেশটি অ্যান্ড্রয়েড স্টুডিও। আপনি যদি জাভাটি সন্ধান করতে চান তবে আমি আমাদের জাভা বুনিয়াদি টিউটোরিয়ালটির পরামর্শ দিই এবং যদি আপনি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে কোনও অ্যাপ কীভাবে লিখতে চান তা শিখতে চাই তবে আমি আপনাকে প্রথম অ্যান্ড্রয়েড অ্যাপটি লেখার জন্য আমাদের টিউটোরিয়ালটি পরীক্ষা করে দেখার পরামর্শ দিই। তবে জাভা এবং অ্যান্ড্রয়েড স্টুডিও অ্যান্ড্রয়েডের জন্য বিকাশের একমাত্র উপায় নয়। আপনি আমাদের গাইডগুলিতে উপলভ্য ভাষা এবং এসডিকে একটি সংক্ষিপ্তসার পেতে পারেন: আমি অ্যান্ড্রয়েড অ্যাপ্লিকেশন বিকাশ করতে চাই - আমার কোন ভাষাগুলি শিখতে হবে?


প্রোগ্রামিং ল্যাঙ্গুয়েজ গাইডে উল্লেখ করা একটি এসডিকে হলেন করোনা, তৃতীয় পক্ষের এসডিকে প্রাথমিকভাবে গেম লেখার জন্য তৈরি করা হয়েছে। জাভা পরিবর্তে, করোনা লুয়া ব্যবহার করেন, একটি দ্রুত স্ক্রিপ্টিং ভাষা যা এখনও শক্তিশালী শেখা সহজ। তবে করোনার একমাত্র মোবাইল গেমিং এসডিকে নয় যা লুয়া ব্যবহার করে, অন্যান্য সুপরিচিত উদাহরণগুলির মধ্যে রয়েছে কোকোস 2 ডি-এক্স, মার্মালেড এবং গিডারস।

ডাউনলোড এবং ইন্সটল

করোনার সাথে শুরু করতে আপনাকে এসডিকে ডাউনলোড এবং ইনস্টল করতে হবে। করোনার ওয়েবসাইটে যান এবং ডাউনলোড বোতামটি চাপুন। আপনি কিটটি ডাউনলোড করার আগে আপনাকে একটি অ্যাকাউন্ট তৈরি করতে হবে (যা বিনামূল্যে)। আপনি যদি এমুলেটরটিতে কেবল আপনার প্রোগ্রাম চালানোর পরিবর্তে একটি আসল .apk ফাইল তৈরি করতে চান তবে আপনার জাভা 7 ইনস্টল করতে হবে তবে আপনাকে অ্যান্ড্রয়েড এসডিকে ইনস্টল করতে হবে না। জাভা 7 ডেভলপমেন্ট কিটটি ইনস্টল করতে ওরাকল এর ওয়েবসাইটে যান, "জাভা এসই ডেভলপমেন্ট কিট 7u79 called নামক বিভাগটি সন্ধান করুন এবং আপনার পিসির জন্য সংস্করণটি ডাউনলোড করুন।


একবার আপনি করোনাকে ইনস্টল করার পরে এটি সক্রিয় করতে হবে। এটি এককালীন প্রক্রিয়া, যা বিনামূল্যে। করোনার সিমুলেটরটি শুরু করুন এবং লাইসেন্সটিতে সম্মত হন। ডাউনলোডের জন্য আপনি যে ইমেল ঠিকানা এবং পাসওয়ার্ডটি ব্যবহার করেছেন তাতে প্রবেশ করুন এবং লগইন ক্লিক করুন।

প্রকল্প শুরু হচ্ছে

করোনার সিমুলেটরের মধ্যে থেকে "নতুন প্রকল্প" এ ক্লিক করুন “" অ্যাপ্লিকেশন নাম: "ক্ষেত্রে আপনার অ্যাপ্লিকেশনটির জন্য একটি নাম লিখুন এবং বাকী সেটিংস তাদের ডিফল্টে রেখে দিন। "ঠিক আছে" ক্লিক করুন।

তিনটি উইন্ডো উপস্থিত হবে। প্রথম দুটি হ'ল করোনা সিমুলেটর এবং করোনার সিমুলার আউটপুট। করোনায় আপনার প্রকল্পের ফাইলগুলি দেখিয়ে একটি ফাইল এক্সপ্লোরার উইন্ডোও খুলবে।

প্রকল্প ডিরেক্টরিতে সর্বাধিক ফাইল (এর মধ্যে 23 টি) অ্যাপ্লিকেশন আইকনটির জন্য! আমাদের জন্য এখনই সবচেয়ে গুরুত্বপূর্ণ ফাইলটি main.lua, এই হিসাবে আমরা আমাদের অ্যাপ্লিকেশনটির জন্য কোডটি লিখব।

লুয়ার পরিচয়

আমরা কোডটি লেখার আগে, আমাদের লুয়ার একটি হুইসল-স্টপ ট্যুর করা দরকার। লুয়া দোভাষী (মনে রাখবেন এটি একটি স্ক্রিপ্টিং ভাষা, সংকলিত ভাষা নয়) উইন্ডোজ, ওএস এক্স এবং লিনাক্সের জন্য উপলব্ধ। তবে এটি করোনায় অন্তর্নির্মিত, তাই এই সময়ে আপনাকে অতিরিক্ত কোনও কিছু ইনস্টল করার দরকার নেই। লুয়ার সাথে খেলার সহজতম উপায় হ'ল অনলাইন লাইভ ডেমো ব্যবহার করা।

লুয়া সম্পর্কে অনলাইনে আপনি প্রচুর ভাল টিউটোরিয়াল খুঁজে পেতে পারেন এবং আপনার লুয়া রেফারেন্স ম্যানুয়াল, লুয়ার প্রোগ্রামিং, দ্য.লুআ.টিউটোরিয়াল এবং টিউটোরিয়াল পয়েন্ট লুয়া টিউটোরিয়ালটি একবার দেখে নেওয়া উচিত।

এখানে একটি ছোট লুয়া প্রোগ্রাম রয়েছে যা আপনাকে লুয়ার কয়েকটি মূল বৈশিষ্ট্য প্রদর্শন করবে:

স্থানীয় ফাংশন দ্বিগুণ

উপরের কোডটি তিনটি গুরুত্বপূর্ণ লুয়া নির্মাণ দেখায়: ফাংশন, লুপ এবং যদি বিবৃতি দেয়। কাজ doubleIt () খুব সহজ, এটি প্যারামিটারে পাস দ্বিগুণ করে এক্স.

মূল কোডটি হ'ল ক জন্য 1 থেকে 10 পর্যন্ত লুপ। এটি কল করে doubleIt () প্রতিটি পুনরাবৃত্তির জন্য। যদি ফেরতের মান 10 হয় (অর্থাত্ কখন) আমি 5) এর পরে কোডটি "দশ" মুদ্রণ করে অন্যথায় এটি এর ফলাফল প্রিন্ট করে doubleIt ().

আপনার যদি কোনও কোডিংয়ের অভিজ্ঞতা থাকে তবে উদাহরণ কোডটি অনুসরণ করা যথেষ্ট সহজ হওয়া উচিত। আপনি যদি কিছু বেসিক প্রোগ্রামিং শিখতে চান তবে আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি দক্ষতা অর্জনের জন্য উপরে সংযুক্ত কিছু সংস্থানগুলি ব্যবহার করুন।

গেমটি লিখছি

করোনায় বেসিক প্রোগ্রামগুলি লেখা সহজ। আপনার কেবল একটি ফাইল নিয়ে নিজেকে উদ্বেগ করা দরকার, main.lua, এবং করোনাকে সমস্ত ভারী উত্তোলন করতে দিন। আমরা যে গেমটি লিখতে চলেছি এটি একটি সাধারণ "ট্যাপ" গেম। একটি বেলুন বা বোমা স্ক্রিনে ব্যর্থ হবে। খেলোয়াড় যদি বেলুনটিতে টোকা দেয় তবে তারা একটি পয়েন্ট স্কোর করে, তারা বোমাতে টোকা দেয় তবে পেনাল্টি হিসাবে স্কোর 2 দ্বারা বিভক্ত হবে। কোডটি লিখতে আপনাকে সম্পাদনা করতে হবে main.lua। আপনি যে কোনও পাঠ্য সম্পাদক এ এটি করতে পারেন।

করোনার এসডিকে একটি বিল্ট-ইন 2 ডি ফিজিক্স ইঞ্জিন রয়েছে, যা বিল্ডিং গেমগুলি খুব সহজ করে তোলে। গেমটি লেখার প্রথম পদক্ষেপটি পদার্থবিজ্ঞানের ইঞ্জিনটি শুরু করা:

স্থানীয় পদার্থবিজ্ঞান = প্রয়োজনীয় ("পদার্থবিজ্ঞান") পদার্থবিদ্যা.স্টার্ট ()

কোডটি মোটামুটি স্ব-বর্ণনামূলক। মডিউল পদার্থবিদ্যা লোড এবং আরম্ভ করা হয়, এটি ভেরিয়েবলের জন্য বরাদ্দ করা হয় পদার্থবিদ্যা। ইঞ্জিন সক্ষম করতেphysics.start () বলা হয়.

এরপরে আমরা কয়েকটি সহায়ক ভেরিয়েবল তৈরি করি যা কেবলমাত্র এই সাধারণ গেমের জন্যই নয়, আরও জটিল গেমগুলির জন্যও কার্যকর হবে। halfW এবং halfH পর্দার প্রস্থের অর্ধেক এবং পর্দার উচ্চতার অর্ধেকের জন্য মানগুলি ধরে রাখুন:

হাফডব্লু = ডিসপ্লে.কন্টেন্টউইথ * 0.5 হাফএইচ = ডিসপ্লে.কন্টেন্টহাইট * 0.5

দ্য প্রদর্শন অবজেক্ট একটি পূর্বনির্ধারিত অবজেক্ট যা করোনা বিশ্বব্যাপী উপলভ্য করে।

এখন প্রথম পদক্ষেপটি আসে যা পর্দায় আসলে কিছু ঘটায়:

স্থানীয় বিকেজি = ডিসপ্লে.নিউইমেজ ("নাইট_স্কি.পিএনজি", হাফডাব্লু, হাফ এইচ)

পাশাপাশি বৈশিষ্ট্য contentHeight এবং contentWidth, দ্য প্রদর্শন অবজেক্টে প্রচুর দরকারী ফাংশন রয়েছে। দ্য নতুন চিত্র() ফাংশন একটি চিত্র ফাইল পড়ে (এই ক্ষেত্রে একটি .png) এবং এটি স্ক্রিনে প্রদর্শন করে। ডিসপ্লে অবজেক্টগুলি স্তরগুলিতে রেন্ডার করা হয়, সুতরাং যেহেতু আমরা এই প্রথম চিত্রটি স্ক্রিনে রাখছি তখন এটি সর্বদা পটভূমি হবে (যদি না কোডটি স্পষ্টভাবে পরিবর্তন করতে কিছু না করে)। পরামিতি halfW এবং halfH মাঝখানে ছবিটি রাখার জন্য করোনাকে বলুন।

এই মুহুর্তে আপনি এমুলেটরটিতে কোড চালাতে পারেন এবং পটভূমি চিত্রটি দেখতে পারেন। আপনি যদি ফাইলটি সংরক্ষণ করেন তবে এমুলেটরটি লক্ষ্য করবে যে ফাইলটি পরিবর্তিত হয়েছে এবং পুনরায় চালু করার প্রস্তাব দিচ্ছে। যদি এটি না ঘটে থাকে তবে ফাইল-> পুনরায় চালু করুন।

যেহেতু ব্যবহারকারী বেলুনগুলিতে আলতো চাপার জন্য পয়েন্ট স্কোর করবে, তাই আমাদের স্কোর পরিবর্তনশীল আরম্ভ করতে হবে এবং স্ক্রিনে স্কোর প্রদর্শন করতে হবে:

স্কোর = 0 স্কোরটেক্সট = প্রদর্শন.নিউ টেক্সট (স্কোর, হাফডাব্লু, 10)

স্কোরটি কল্পনাপ্রসূত নামযুক্ত চলকতে রাখা হবে স্কোর,এবং scoreText স্কোর প্রদর্শন করে এমন একটি বস্তু। মত নতুন চিত্র(), newText () এই ক্ষেত্রে পাঠ্য, স্ক্রিনে কিছু রাখুন। থেকে scoreText এটি একটি বৈশ্বিক পরিবর্তনশীল তবে আমরা যে কোনও সময়ে পাঠ্য পরিবর্তন করতে পারি। তবে আমরা শীঘ্রই এটি পেতে হবে।

আপনি এমুলেটরটি পুনরায় চালু করতে পারেন এবং স্ক্রিনের শীর্ষে 0 টির স্কোর দেখতে পারেন।

বাম: ঠিক পটভূমি। ডান: পটভূমি এবং স্কোর।

এখন কিছুটা আরও জটিল বিষয় এসেছে, তবে চিন্তা করবেন না যে আমি এটি লাইন দিয়ে এক সাথে ব্যাখ্যা করব:

স্থানীয় ফাংশন বেলুন টাচ (ইভেন্ট) যদি (ইভেন্ট.ফেজ == "শুরু" হয়) তবে রানটাইম: রিমুভেরেন্টলাইস্টেনার ("এন্টারফ্রেম", ইভেন্ট.স্বেলে) ইভেন্ট.আর্টেজ: রিমোভসেলফ () স্কোর = স্কোর + 1 স্কোরটেক্সট.স্টেক্সট = স্কোর সমাপ্তি

উপরের কোডটি একটি ফাংশনকে সংজ্ঞায়িত করে balloonTouched () যা প্রতিবার একটি বেলুনটি টেপ করা হবে। আমরা যতক্ষণ না বেলুনটি টেপ করা হয়েছে ততবার এই ফাংশনটি কলোনাকে করোনাকে বলিনি, এটি পরে আসবে, কিন্তু যখন আমরা এটি করি তখন কল হয় সেই ফাংশনটি।

ট্যাপ বা স্পর্শ ইভেন্টের বিভিন্ন ধাপ রয়েছে, অনেকগুলি টেনে আনার পক্ষে to ব্যবহারকারী কোনও বস্তুর উপরে তাদের আঙুল রাখে, এটিই "শুরু" পর্যায়ে। যদি তারা কোনও দিকে তাদের আঙুলটি স্লাইড করে তবে এটি "সরানো" পর্যায়ে। যখন ব্যবহারকারী পর্দা থেকে তাদের আঙুলটি তুলে রাখেন, এটিই "সমাপ্ত" পর্ব।

প্রথম লাইন balloonTouched () আমরা "শুরু" পর্যায়ে থাকা চেকগুলি। আমরা যত তাড়াতাড়ি সম্ভব হিসাবে বেলুনটি সরিয়ে স্কোর বাড়িয়ে তুলতে চাই। যদি ফাংশনটিকে "শেষ" এর মতো অন্যান্য পর্যায়ের জন্য আবারও ডাকা হয় তবে ফাংশনটি কিছুই করে না।

ভিতরেযদি বিবৃতি চারটি কোডের লাইন। আসুন আমরা শেষ দু'জনের সাথে প্রথমে ডিল করি, কারণ তারা সহজ।স্কোর = স্কোর + 1 শুধু এক দ্বারা স্কোর বৃদ্ধিস্কোরটেক্সট.টেক্সট = স্কোর নতুন স্কোর প্রতিফলিত করতে স্ক্রিনে স্কোর পাঠ্য পরিবর্তন করে। আমি কী বলেছিলাম তা মনে রাখবেনscoreText বিশ্বব্যাপী ছিল এবং যে কোনও জায়গায় অ্যাক্সেস করা যেতে পারে, ভাল আমরা এখানে এখানে করি।

এখন প্রথম দুটি লাইনের জন্য। একবার বেলুন বা বোমাটি স্ক্রিনের নীচে পড়ে গেলে এটি অ্যাপের স্মৃতিতে এখনও উপস্থিত থাকে, আপনি এটি দেখতে পাচ্ছেন না কেবল এটি। গেমটি অগ্রগতির সাথে সাথে এই অফ-স্ক্রিন অবজেক্টগুলির সংখ্যা অবিচ্ছিন্নভাবে বাড়বে। অতএব আমাদের এমন একটি ব্যবস্থা থাকা দরকার যা বস্তুগুলি দৃষ্টিশক্তির বাইরে চলে যাওয়ার পরে মুছে ফেলা হয়। আমরা ডাকা একটি ফাংশন মধ্যে এটি নাoffscreen, যা আমরা এখনও লিখিনি। গেমটির সময় এই ফাংশনটি প্রতি ফ্রেমে একবার কল করা হবে। একবার বেলুনটি টেপ করা হয়ে গেলে আমাদের এটি মুছতে হবে এবং যে কলটি বেলুনটি অফস্ক্রিন হয়েছে কিনা তা পরীক্ষা করে gone

লাইনevent.target:removeSelf () বেলুন মোছা। যখন কোনও স্পর্শ ইভেন্টটি ঘটে শ্রোতার ফাংশনের অন্যতম পরামিতিঘটনা প্যারামিটার। এটি ইভেন্ট এবং এটি কী ধরণের ইভেন্ট সম্পর্কে ফাংশনটি জানায়, যেমন।event.phase। এটি আমাদের জানায় যে কোন বেলুনটি টেপ করা হয়েছিল,event.target। দ্যremoveSelf () ফাংশন এটি যা বলে তা যা করে তা করে, এটি বস্তুটি মুছে ফেলে (এই ক্ষেত্রে একটি বেলুন)।

তার আগে লাইনটি "এন্টারফ্রেম" শ্রোতাকে সরিয়ে দেয়, এটি এমন ফাংশন যা প্রতিটি ফ্রেমকে বলা হয় যে বেলুনটি পর্দার নীচে থেকে পড়েছে কিনা তা দেখার জন্য। আমরা যখন এটি লিখতে আসি তখন আমরা আরও বিশদে এটি দেখবoffscreen শ্রোতা ফাংশন।

সুতরাং, পুনরুদ্ধার করতে।balloonTouched ()এটি স্পর্শ সিকোয়েন্সের সূচনা তা পরীক্ষা করে। এরপরে এটি "এন্টারফ্রেম" শ্রোতাকে সরিয়ে দেয়, এটি এমন ফাংশন যা প্রতিটি ফ্রেমকে বলা হয় যে বেলুনটি পর্দার নীচে থেকে পড়েছে কিনা তা দেখার জন্য। এরপরে এটি বেলুনটি মুছে দেয়, স্কোর বাড়ায় এবং নতুন স্কোর প্রদর্শন করে।

এটি ছিল বেলুনগুলির জন্য, এখন বোমাগুলির জন্য আমাদের অনুরূপ কিছু দরকার:

লোকাল ফাংশন বোমাবাজি (ইভেন্ট) যদি (ইভেন্ট.ফেজ == "" শুরু হয়) তবে রানটাইম: রিমুভেরেন্টলাইস্টেনার ("এন্টারফ্রেম", ইভেন্ট.স্বেলে) ইভেন্ট.টারাজেট: রেমোসেল্ফ () স্কোর = ম্যাথ.ফ্লোয়ার (স্কোর * 0.5) স্কোরটেক্সট.স্টেক্সট = স্কোর সমাপ্তি

আপনি দেখতে পাচ্ছেন যে কোডটি ব্যতিক্রমের সাথে খুব সাদৃশ্যপূর্ণ যে স্কোর বাড়ানোর পরিবর্তে স্কোরটি 0.5 দ্বারা ভাগ করা হয় (অর্থাত্ 2 দিয়ে বিভক্ত)। দ্য math.floor () ফাংশনটি স্কোরটিকে নিকটতম পূর্ণসংখ্যার দিকে নিয়ে যায়। সুতরাং প্লেয়ারটির স্কোর যদি 3 থাকে এবং বোমাটি ট্যাপ করে তবে নতুন স্কোরটি 1.5 হবে না, 1 হবে।

আমি উল্লেখ offscreen () পূর্বে ফাংশন কোনও কাজ স্ক্রিন বন্ধ হয়ে গেছে কিনা তা পরীক্ষা করতে এই ফাংশনটিকে প্রতিটি ফ্রেম বলা হবে be কোডটি এখানে:

লোকাল ফাংশন অফস্ক্রিন (স্ব, ইভেন্ট) যদি (self.y == শূন্য হয়) তারপরে প্রান্তটি ফিরে আসে যদি (স্ব.আই>> ডিসপ্লে.কন্টেন্টহাইট + 50) তবে রানটাইম: রিমুভেরেন্টলাইস্টেনার ("এন্টারফ্রেম", স্ব) স্ব: সরানসেলফ () সমাপ্তি শেষ

কম্পিউটিংয়ে একটি পরিস্থিতি রেসের শর্ত হিসাবে পরিচিত। এখানেই দুটি জিনিস ঘটতে চলেছে তবে প্রথমে একটি ঘটতে পারে, বা কখনও কখনও অন্যটি প্রথমে ঘটতে পারে। এটি একটি দৌড়। কিছু জাতি শর্ত অদৃশ্য কারণ এক জিনিস সর্বদা প্রথমে ঘটে বলে মনে হয় তবে তারা একদিনে আকর্ষণীয় বাগ তৈরি করতে পারে সঠিক অবস্থার অধীনে, অন্য জিনিসটি প্রথমে ঘটে এবং তারপরে সিস্টেমটি ভেঙে যায়!

এই সাধারণ খেলায় রেসের শর্ত রয়েছে কারণ দুটি জিনিস একে অপরের খুব কাছাকাছি ঘটতে পারে: একটি বেলুনটি টেপ করা এবং offscreen () বেলুনটি পর্দার বাইরে চলে গেছে কিনা তা দেখতে ফাংশনটি ডাকা হচ্ছে। ফলাফলটি হ'ল বেলুনটি মুছতে কোডটি কল করা যায় এবং তারপরে offscreen () ফাংশন বলা হয় (যা প্রতি সেকেন্ডে 30 বারের মতো হয়)। ইভেন্টের এই বিজোড় ক্রম কাছাকাছি পেতে offscreen () ফাংশনটি পরীক্ষা করা দরকার কিনা Y বস্তুর মান হয় শূন্য (নাল) বা না। যদি হয় শূন্য তারপরে এর অর্থ হ'ল বস্তুটি ইতিমধ্যে মুছে ফেলা হয়েছে, সুতরাং এগিয়ে যান, এগুলি আমরা অনুসন্ধান করছি এমন ড্রোড নয়।

যদি অবজেক্টটি এখনও প্লেতে থাকে তবে তার অবস্থানটি পরীক্ষা করুন, যদি এটি পর্দা থেকে 50 পিক্সেল চলে গেছে তবে এটি মুছুন এবং শ্রোতাকে সরিয়ে ফেলুন যাতে offscreen () এই বস্তুর জন্য ফাংশনটি আবার কল করা হবে না। এটি নিশ্চিত করার জন্য কোডoffscreen () বলা হয় প্রতিটি ফ্রেম কোডের পরবর্তী বিভাগের অংশ।

এই গেমটির পুরো ভিত্তিটি হ'ল নতুন বেলুনগুলি বা বোমাগুলি স্ক্রিনটি নিচে নামতে থাকবে। অতএব আমাদের একটি ফাংশন প্রয়োজন যা একটি নতুন বেলুন বা একটি নতুন বোমা তৈরি করবে:

স্থানীয় ফাংশন যুক্ত করুন নিউবালুনঅরবম্ব () স্থানীয় স্টার্টএক্স = ম্যাথ.রান্ডম (ডিসপ্লে.কন্টেন্টউইথ * 0.1, ডিসপ্লে.কন্টেন্টউইথ * 0.9) যদি (ম্যাথ.র্যান্ডম (1,5) == 1) তবে - বিওএমবি! লোকাল বোম = ডিসপ্লে.নেইউইমেজ ("বোম্ব.পিএনজি", স্টার্টএক্স, -300) পদার্থবিজ্ঞান - বেলুন স্থানীয় বেলুন = প্রদর্শন.নিউজিমেশন ("red_balloon.png", startX, -300) পদার্থবিজ্ঞান balloonTouched) শেষ প্রান্ত

ফাংশনের প্রথম লাইনটি সিদ্ধান্ত নেয় যে বেলুনটি কোথা থেকে নেমে আসবে এক্স সমতল। যদি বেলুন বা বোমা সবসময় মাঝখানে পড়ে যায় তবে তা খুব আকর্ষণীয় হবে না! সুতরাংstartx 10 শতাংশ থেকে 90 শতাংশ পর্দার প্রস্থের মধ্যে একটি এলোমেলো সংখ্যা।

এর পরে একটি এলোমেলো সংখ্যা 1 এবং 5 এর মধ্যে নেওয়া হয়।সংখ্যাটি যদি 1 হয় তবে একটি বোমা ফেলে দেওয়া হবে। যদি এটি 2, 3, 4 বা 5 হয় তবে একটি বেলুন বাদ পড়বে। এর অর্থ হ'ল প্রায় 20 শতাংশ সময় বোমা ফেলে দেওয়া হবে।

বোমা এবং বেলুন কোডটি বেশ একই রকম। প্রথমে চিত্রটি (বোমা বা একটি বেলুন) ব্যবহার করে প্রদর্শিত হবেনতুন চিত্র(). এর এক্স অবস্থান যেstartx যদিও এর Y পজিশনটি -300 তে সেট করা হয়েছে, অর্থাত্ স্ক্রিনের শীর্ষে। এর কারণ হ'ল আমরা চাই যে পজিশনটি বাইরের অংশ থেকে দৃশ্যমান অঞ্চলে পড়ে এবং তারপরে নীচে পড়ে। যেহেতু আমরা 2 ডি পদার্থবিজ্ঞান ইঞ্জিন ব্যবহার করছি তা অবজেক্টটিকে পড়ার জন্য প্রাথমিক দূরত্বের খানিকটা সময় দেওয়া ভাল, তাই এটি কিছুটা গতি অর্জন করতে পারে।

কলphysics.addBody () দ্বারা লোড ইমেজ লাগে নতুন চিত্র() এবং এটিকে পদার্থবিজ্ঞানের ইঞ্জিনে কোনও বস্তুতে পরিণত করে। এটি খুব শক্তিশালী। যে কোনও চিত্র ফাইলকে এমন একটি শরীরে তৈরি করা যেতে পারে যা কেবল কল করে মাধ্যাকর্ষণ এবং সংঘর্ষের প্রতিক্রিয়া জানায়physics.addBody ()।

বোমা বা বেলুন কোডের শেষ তিনটি লাইন শ্রোতাদের সেট আপ করে। সেট করা হচ্ছেenterFrame সম্পত্তি প্রতিটি ফ্রেমে এবং কলটিতে কোন ফাংশনটিতে কলোনাকে করোনাকে বলেতারিখ: addEventListener () সেট আপ। শেষ পর্যন্ত কলবেড়ে: addEventListener () বোমা বা বেলুনটি স্পর্শ করা হলে কোন ফাংশনটি কল করতে করোনাকে জানায়।

এবং এখন খেলা প্রায় সম্পূর্ণ। আমাদের কেবল দুটি লাইন কোডের প্রয়োজন:

অ্যাডনিউবালুনআরবম্ব () টাইমআরপারফর্ম উইথডেলে (500, অ্যাড নিউবালুন ওরবম্ব, 0)

প্রথম লাইনটি সুস্পষ্টভাবে কল করে খুব প্রথম বোমা বা বেলুনটিকে পড়েছেaddNewBalloonOrBomb ()। দ্বিতীয় লাইনটি টাইমার সেট করে যা কল করবেaddNewBalloonOrBomb () প্রতি অর্ধেক সেকেন্ডে (500 মিলিসেকেন্ড)। এর অর্থ হ'ল প্রতি আধা সেকেন্ডে একটি নতুন বেলুন বা বোমা পড়বে।

আপনি এখন এমুলেটরটিতে গেমটি চালাতে পারেন।

এখানে মূল.লুয়ার সম্পূর্ণ তালিকা রয়েছে, এই গেমটির জন্য পূর্ণ প্রকল্পের উত্স কোডটি এখানে গিটহাবে পাওয়া যাবে।

-------------------------------------------------- --------------------------------------- - - পড়ন্ত বেলুন এবং বোমা খেলা - এর জন্য গ্যারি সিমস লিখেছেন --------------------------------------------------- ---------------------------------------------- - শুরু করুন পদার্থবিজ্ঞান ইঞ্জিন স্থানীয় পদার্থবিজ্ঞান = প্রয়োজনীয় ("পদার্থবিজ্ঞান") পদার্থবিদ্যা.স্টার্ট () - অর্ধেক পর্দার প্রস্থ এবং উচ্চতা অর্ধেক গণনা করুন = প্রদর্শন.কমেন্টউইথ * 0.5 অর্ধএইচ = ডিসপ্লে.কন্টেন্টহাইট * 0.5 - ব্যাকগ্রাউন্ড সেট করুন স্থানীয় বি কেজি = ডিসপ্লে.নেইজ ইমেজ ("নাইট_সকি.পিএনজি", হাফডাব্লু, হাফ এইচ) - স্কোর স্কোর = 0 স্কোরটেক্সট = ডিসপ্লে.নেট টেক্সট (স্কোর, হাফডাব্লু, 10) - যখন বেলুনটি প্লেয়ার দ্বারা ট্যাপ করা হয় - 1 স্থানীয় ফাংশন বেলুনটি দ্বারা স্কোর বাড়িয়ে দেওয়া হয় ( ইভেন্ট) যদি (ইভেন্ট.ফেজ == "" শুরু হয়) তবে রানটাইম: অপসারণের তালিকাভুক্তকরণ ("এন্টারফ্রেম", ইভেন্ট. নিজেই) ইভেন্ট.আরজিটসেমোভসেল্ফ () স্কোর = স্কোর + 1 স্কোরটেক্সট.স্টেক্সট = স্কোর সমাপ্তি - যখন ডাকা হয় বোমাটি প্লেয়ার দ্বারা টেপ করা হয় - পেনাল্টি লোকাল ফাংশন হিসাবে অর্ধেক স্কোর বোমাটি (ইভেন্ট) যদি (ইভেন্ট.ফেজ ==) "শুরু") তারপরে রানটাইম: অপসারণের তালিকাভুক্তকরণ ("এন্টারফ্রেম", ইভেন্ট.স্বেলে) ইভেন্ট.আর্টেজ: রেমোসেল্ফ () স্কোর = ম্যাথ.ফ্লোয়ার (স্কোর * 0.5) স্কোরটেক্সট.স্টেক্সট = স্কোর শেষ - অবজেক্টগুলি মুছুন যা পড়ে গেছে পর্দার নীচে স্থানীয় ফাংশন অফস্ক্রিন (স্ব, ইভেন্ট) যদি (self.y == শূন্য হয়) তবে শেষে ফিরে আসুন (স্ব.আই>> প্রদর্শন.কন্টেন্টহাইট + 50) তারপরে রানটাইম: রিমুভেরেন্টলিস্টনার ("এন্টারফ্রেম", স্ব) স্ব: রিমুভসেলফ () শেষ প্রান্ত - একটি নতুন পতন্ত বেলুন যুক্ত করুন বা বোম্ব লোকাল ফাংশন যুক্ত করুন নিউবেলুনঅরবম্ব () - আপনি গিটহাব রেপোতে স্থানীয় স্টার্টএক্স = ম্যাথ.রান্ডম (display.contentWidth * 0.1, display.contentWidth) এ red_ballon.png এবং বোম্ব.পিএনগ খুঁজে পেতে পারেন You * ০.৯) যদি (math.random (1,5) == 1) তবে - বিওএমবি! লোকাল বোম = ডিসপ্লে.নেইউইমেজ ("বোম্ব.পিএনজি", স্টার্টএক্স, -300) পদার্থবিজ্ঞান - বেলুন স্থানীয় বেলুন = প্রদর্শন.নিউজিমেশন ("red_balloon.png", startX, -300) পদার্থবিজ্ঞান বেলুনটিউচড) শেষ প্রান্ত - একটি নতুন বেলুন যুক্ত করুন বা বোমা এখন যোগ করুন নিউবেলুন ওর্বম্ব () - প্রতি 0.5 সেকেন্ডে একটি নতুন বেলুন যোগ করুন বা বোমা বোলাতে হবে টাইম.পারফর্ম উইথড্লে (500, অ্যাডনিউবালুন ওরবম্ব, 0)

পরবর্তী পদক্ষেপ

পরবর্তী পদক্ষেপটি একটি আসল অ্যান্ড্রয়েড ডিভাইসে গেমটি খেলতে হয়। একটি .apk ফাইল তৈরি করতে ফাইল-> বিল্ড ফর অ্যান্ড্রয়েড… এ ক্লিক করুন এবং ক্ষেত্রগুলি পূরণ করুন। ফলাফলটি একটি .apk ফাইল হবে যা আপনি নিজের ডিভাইসে অনুলিপি করতে পারেন এবং তারপরে ইনস্টল করতে পারেন। আপনার অজানা উত্স থেকে অ্যাপ্লিকেশন ইনস্টল করার অনুমতি দেওয়ার জন্য আপনার ডিভাইসটি কনফিগার করেছেন তা নিশ্চিত করতে হবে। অ্যামাজন এর এ সম্পর্কে কিছু ভাল ডকুমেন্টেশন রয়েছে কারণ আপনাকে অ্যামাজন অ্যাপস্টোর ইনস্টল করার জন্য এটিও সেট করতে হবে। অ্যানড্রয়েড ডিভাইসে কীভাবে আপনার অ্যাপ্লিকেশনটিতে সাইন, বিল্ড এবং পরীক্ষা করতে হয় তার জন্য করোনারও একটি গাইড রয়েছে।

গেমটি সফলভাবে আপনার ডিভাইসে ইনস্টল করার সাথে সাথে করণীয় পরবর্তী কাজটি হ'ল গেমটি উন্নত করা। উদাহরণস্বরূপ, কেন একটি "পপ" বা "ঠুং শব্দ" শব্দটি বেলুন বা বোমা টেপযুক্ত সমস্ত কিছু যুক্ত করার চেষ্টা করবেন না। এর জন্য করোনার একটি এপিআই রয়েছে:media.playEventSound ().

বা তৃতীয় ধরণের অবজেক্ট যুক্ত করার চেষ্টা করছেন না কেন, এমন একটি সুপার বুস্ট বলুন যা বর্তমান স্কোরকে দ্বিগুণ করে, বা কিছু ব্যাকগ্রাউন্ড সংগীত সম্পর্কে কী বলা যায়?

শেষ করি

করোনার সাথে গেমগুলি রচনা করা বেশ সোজা এগিয়ে রয়েছে কারণ এসডিকে ওপেনগিএলের মতো জিনিসগুলি পরিচালনা করে এবং এতে বিল্ট-ইন 2 ডি ফিজিক্স ইঞ্জিন অন্তর্ভুক্ত রয়েছে। এছাড়াও লুয়া শিখতে সহজ এবং এমনকি সর্বনিম্ন প্রোগ্রামিং অভিজ্ঞতা থাকা কারও পক্ষে শক্ত হওয়া উচিত নয়। করোনালাবস ওয়েবসাইটে প্রচুর গাইড এবং টিউটোরিয়াল সহ প্রচুর ডকুমেন্টেশন রয়েছে।

কোডের 100 টিরও কম লাইনে আমাদের একটি কার্যকরী গেম রয়েছে। ঠিক আছে, এটি কোনও পুরস্কার জিততে পারে না, তবে এটি করোনার এসডিকে শক্তি এবং নমনীয়তা দেখায়।

ব্যাটারি জীবন স্মার্টফোনগুলির সাথে একটি সমস্যা হিসাবে অব্যাহত থাকে এবং আমরা সর্বদা কোনও দেয়ালে আঁকতে পারি না। আউটলেটগুলির শিকার না করেই আপনার স্মার্টফোনটি চালু রাখার জন্য এবং বহিরাগত পাওয়ার ব্যাংক থ...

করের মরসুমটি অনেক লোকের জন্য বছরের কঠিন সময়। কারও কারও কাছে কেবলমাত্র কিছু স্বাস্থ্য বীমা তথ্য এবং তাদের ডাব্লু -2 এর একটি কম্পিউটারে ফেলে দেওয়া এবং ট্যাক্স রিটার্নের সাথে নাচতে হবে। তবে অন্যের কাছ...

আপনার জন্য প্রস্তাবিত