সুচিপত্র:

Arduino Space Rocks Game: 3 ধাপ
Arduino Space Rocks Game: 3 ধাপ

ভিডিও: Arduino Space Rocks Game: 3 ধাপ

ভিডিও: Arduino Space Rocks Game: 3 ধাপ
ভিডিও: ROKR 3D Pinball Puzzle EG01 2024, জুলাই
Anonim
আরডুইনো স্পেস রকস গেম
আরডুইনো স্পেস রকস গেম

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

সম্প্রতি আমি দেখেছি যে কেউ "ফ্ল্যাপি বার্ড" এর একটি সাধারণ দুই স্তরের সংস্করণ তৈরি করেছে যা একটি সাধারণ 1602 এলসিডি তে বাজানো হয়েছিল। আমি ভেবেছিলাম এটি এমন কিছু হবে যা নাতি -নাতনিদের পছন্দ হতে পারে তাই আমি শুরু থেকে আমার নিজের বৈচিত্র্য করার সিদ্ধান্ত নিয়েছি। 1602 সংস্করণে মাত্র দুটি স্তর রয়েছে তাই আমি খেলার অসুবিধা কিছুটা বাড়ানোর পরিবর্তে 2004 LCD (20x4) ব্যবহার করার সিদ্ধান্ত নিয়েছি। আমি "স্পেস রকস" এর একটি গোলকধাঁধার মধ্য দিয়ে প্লেয়ারকে একটি "জাহাজ" গাইড করার মাধ্যমে এটিকে "গ্রহাণু" এর মতো করারও পছন্দ করেছি। এমনকি যদি আপনি গেমটি তৈরিতে আগ্রহী না হন, তবে সফ্টওয়্যারের কিছু উপাদান থাকতে পারে যা আপনি আপনার নিজের একটি প্রকল্পে ব্যবহার করতে পারেন।

ধাপ 1: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

হার্ডওয়্যারটি মোটামুটি যেকোনো Arduino সংস্করণের উপর ভিত্তি করে তৈরি করা যেতে পারে। আমি একটি ন্যানো ব্যবহার করে প্রোটোটাইপিং করেছি এবং তারপর কোডটি একটি ATMega328 চিপে পুড়িয়ে দিলাম। এটি একই চিপ যা ন্যানোতে ব্যবহৃত হয় তবে এটি নিজেই ব্যবহার করে আরও কমপ্যাক্ট বিল্ড এবং কম বিদ্যুৎ ব্যবহারের অনুমতি দেয়। আপনি দেখতে পাচ্ছেন, আমি একটি ছোট ব্রেডবোর্ডে সার্কিটটি তৈরি করেছি যা এলসিডি মডিউলে পিগব্যাক করে। অন্য যে দিকটি ভিন্ন তা হল যে ন্যানো একটি বহিরাগত স্ফটিক ব্যবহার করে 16-MHz এ চলে কিন্তু আমি ATMega328 চিপের জন্য অন্তর্নির্মিত 8-MHz দোলক ব্যবহার করতে বেছে নিয়েছি। এটি অংশ এবং শক্তি সংরক্ষণ করে।

2004 LCD ইন্টারফেসগুলি Arduino তে 1602 LCD এর মতো। একটি আকর্ষণীয় পার্থক্য হল ডিসপ্লে লোকেশন সম্বোধন করা। স্পষ্টতই একটি পার্থক্য আছে কারণ দুটি পরিবর্তে চারটি লাইন আছে কিন্তু, 2004 সালে, তৃতীয় লাইনটি প্রথম লাইনের একটি এক্সটেনশন এবং চতুর্থ লাইনটি দ্বিতীয় লাইনের একটি এক্সটেনশন। অন্য কথায়, যদি আপনার একটি পরীক্ষা প্রোগ্রাম থাকে যা কেবল LCD- এ অক্ষরের একটি স্ট্রিং পাঠায়, ২১ তম অক্ষর তৃতীয় লাইনের শুরুতে প্রদর্শিত হবে এবং st১ তম অক্ষরটি প্রথম লাইনের শুরুতে ফিরে আসবে। আমি সেই বৈশিষ্ট্যটি সফটওয়্যারে কার্যকরভাবে গোলকধাঁধার দৈর্ঘ্য দ্বিগুণ করতে ব্যবহার করি।

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

ধাপ 2: সফটওয়্যার

সফটওয়্যারটি ন্যানো এবং ATMega328 চিপ উভয়ের জন্য একই। পার্থক্য শুধু প্রোগ্রামিং পদ্ধতিতে। আমি 1602 এলসিডি সফটওয়্যারের নিজস্ব বেয়ারবোন সংস্করণ ব্যবহার করি এবং এই প্রকল্পের এলসিডি সফটওয়্যার এর উপর ভিত্তি করে তৈরি। আমি 2004 ডিসপ্লে অতিরিক্ত লাইন মোকাবেলা করার ক্ষমতা যোগ করার প্রয়োজন ছিল এবং ডিসপ্লে স্থানান্তর করার জন্য রুটিন যোগ। ডিসপ্লে শিফট "জাহাজ" এর আগে "শিলা" এর চলাচলের প্রভাব সরবরাহ করে।

পূর্বে উল্লিখিত হিসাবে, লাইন 1 এবং 3 একটি বৃত্তাকার সারি গঠন করে এবং লাইন 2 এবং 4 পাশাপাশি করে। এর মানে হল যে 20 টি শিফটের পরে, লাইন 1 এবং 3 অদলবদল করা হয় এবং লাইন 2 এবং 4 অদলবদল করা হয়। 40 শিফটের পরে লাইনগুলি তাদের আসল অবস্থানে ফিরে আসে। এই আচরণের কারণে, লাইনগুলি অদলবদল করার সময় আসল 20-অক্ষরের গোলকধাঁধা সম্পূর্ণ ভিন্ন হয়ে যায়। যখন আমি একটি গোলকধাঁধা তৈরি করার চেষ্টা করেছি তখন এটি জীবনকে আকর্ষণীয় করে তুলেছিল। আমি অবশেষে একটি এক্সেল স্প্রেডশীট খুললাম যাতে আমি ক্রমাগত সফ্টওয়্যার পরিবর্তন না করে পথটি চার্ট করতে পারি। এখানে প্রদত্ত সফটওয়্যারের গোলকধাঁধার দুটি সংস্করণ রয়েছে (একটি মন্তব্য করা হয়েছে) যাতে আপনি কোনটি চান তা বেছে নিতে পারেন অথবা নিজের তৈরি করতে পারেন।

আমি মূলত চেয়েছিলাম যে এটি যথেষ্ট সহজ হোক যাতে তরুণ নাতি -নাতনিরা এটি খেলতে পারে, কিন্তু আমিও চেয়েছিলাম যে তারা (বা অন্য কেউ) এতে খুব ভাল হলে কিছু অতিরিক্ত চ্যালেঞ্জ থাকুক। 1 সেকেন্ডে শিফট রেট সেট করে খেলা শুরু হয়। অভ্যন্তরীণ টিক রেট 50ms তাই এর মানে হল যে 20 টি বিরতি রয়েছে যার সময় আপ/ডাউন বোতাম টিপতে পারে। প্রকৃতপক্ষে, একটি চাপা বোতাম 2 টি টিক্স ব্যবহার করে কারণ প্রেসটি সনাক্ত করতে 50ms ব্যবধান ব্যবহার করা হয় এবং মুক্তির জন্য অপেক্ষা করার জন্য 50ms ব্যবধান ব্যবহার করা হয়। ডিফল্ট গোলকধাঁধায় পরবর্তী শিফটের আগে সর্বোচ্চ সংখ্যক প্রেস প্রয়োজন। গেমের অসুবিধা বাড়ানোর সহজ উপায় হল শিফটের মধ্যে সময় কমানো প্রতি 20 শিফটে 50ms দ্বারা গতি বাড়ানোর জন্য শিফট রেট সেট করা হয়েছে, সর্বনিম্ন হার 500ms এর মধ্যে সীমাবদ্ধ। এই পরামিতিগুলি পরিবর্তন করা সহজ।

শিফট রেট পরিবর্তন করা ছাড়া, সফটওয়্যারের প্রাথমিক যুক্তি হল "জাহাজ" সরানো এবং "জাহাজ" একটি "শিলার" সাথে সংঘর্ষ হয়েছে কিনা তা নির্ধারণ করা। এই ফাংশনগুলি সংজ্ঞায়িত "রক/স্পেস" অ্যারের সুবিধা নেয় এবং ডিসপ্লেতে মেমরির অবস্থানগুলি সংজ্ঞায়িত করে এমন অ্যারে। শিফট গণনাটি LCD (0-19) এর দৈর্ঘ্যের সাথে মিলে যায় এবং এই অ্যারেগুলিতে একটি সূচক হিসাবে ব্যবহৃত হয়। যুক্তি কিছুটা জটিল এই কারণে যে লাইনগুলি প্রতি 20 শিফটে গণনা করে। একই ধরনের যুক্তি "জাহাজ" এর অবস্থান নির্ধারণ করতে ব্যবহৃত হয় যা চারটি লাইনের যে কোন একটিতে হতে পারে।

প্রতিটি খেলার জন্য স্কোর হল কেবলমাত্র সংঘটিত সংখ্যার গণনা এবং উচ্চ স্কোর মাইক্রোকন্ট্রোলার অভ্যন্তরীণ EEROM এ সংরক্ষিত হয়। EEPROM লাইব্রেরি এই স্মৃতিতে পড়া এবং লেখার জন্য ব্যবহৃত হয়। উপলব্ধ রুটিনগুলি একক বাইট পড়ার/লেখার এবং ভাসমান বিন্দুর মানগুলি পড়ার/লেখার অনুমতি দেয়। একটি উচ্চ স্কোর সংরক্ষণ করা হয়েছে তা নির্দেশ করার জন্য প্রথম EEROM অবস্থানে 0xA5 এর মান সংরক্ষণ করা হয়। যদি সেই মানটি পাওয়ার আপে উপস্থিত থাকে, তাহলে উচ্চ স্কোরের জন্য ভাসমান পয়েন্ট মানটি পড়ে এবং প্রদর্শিত হয়। যদি 0xA5 মানটি না থাকে, তাহলে উচ্চ স্কোরকে 1 এর মান থেকে শুরু করার জন্য একটি রুটিন বলা হয়। আপ/ডাউন বোতামগুলির মধ্যে একটি ধরে রেখে এবং তারপর ক্ষণস্থায়ী রিসেট বোতাম টিপে উচ্চ স্কোর 1 এর মান নির্ধারণ করা হয়।

ধাপ 3: গেমটি বাজানো

খেলাটি খেলিতেছি
খেলাটি খেলিতেছি
খেলাটি খেলিতেছি
খেলাটি খেলিতেছি

যখন শক্তি প্রয়োগ করা হয়, বর্তমান উচ্চ স্কোর প্রদর্শিত হয়। উচ্চ স্কোর প্রদর্শনের পরে, "শিলা" এবং "জাহাজ" এর গোলকধাঁধা প্রদর্শিত হয় তারপর কয়েক সেকেন্ড পরে খেলা শুরু হয়। যখন "জাহাজ" একটি "শিলা" আঘাত করে তখন "ক্র্যাশ এবং বার্ন" বার্তাটি খেলার স্কোর প্রদর্শনের আগে কয়েকবার জ্বলজ্বল করে। যদি একটি নতুন উচ্চ স্কোর করা হয়, তাহলে সেই বার্তাটিও প্রদর্শিত হয়। রিসেট বোতাম টিপে একটি নতুন খেলা শুরু হয়।

প্রস্তাবিত: