আমি মোবাইল ডিভাইসগুলির জন্য একটি 2 ডি স্পেস গেমটি বিকাশ করছি তবে এটি বাস্তব জটিল হয়ে পড়ে এবং আমার সমাধানটি সত্যই বিভ্রান্ত হয় এবং প্রচুর পুনরাবৃত্তি কোড বিভাগ তৈরি করে।
আমি একটি বিশ্বমানের হাভা পেয়েছি যেখানে আমার কাছে বিভিন্ন অবজেক্টের একাধিক তালিকা রয়েছে যেমন:
List<Enemy> enemys;
List<Projectile> projectiles;
List<Collectable> collectables;
List<Asteroid> asteroids;
List<Effect> effects;
..
প্রতিটি তালিকা বিশ্বমানের দ্বারা আপডেট হয়। তবে সব কিছু নয় .. প্রতিটি শত্রুতে ইঞ্জিনের একটি তালিকা রয়েছে, এবং অস্ত্রশস্ত্রের তালিকা রয়েছে যা শত্রু দ্বারা আপডেট হয়। এখন প্রতিটি ইঞ্জিন ওয়ার্ল্ড লিস্টের 'ইফেক্টস'-এ কিছু ফায়ার এফেক্ট যুক্ত করে এবং প্রত্যেকটি অস্ত্রশস্ত্রই বিশ্বের প্রজেক্টিসিয়ালগুলিকে বিশ্বের তালিকায় যুক্ত করে। এই সমস্ত ক্লাসের বিভিন্ন প্যারামিটার রয়েছে, তাই আমার প্রতিটি শ্রেণির জন্য একটি অতিরিক্ত আপডেট এবং অতিরিক্ত রেন্ডার ফাংশন প্রয়োজন।
কমপক্ষে তারা 'গেমওজেক্ট' এর সমস্ত শিশু, যা তাদের অবস্থান, বেগ এবং ত্বরণ ভেক্টরগুলির মতো মৌলিক বিষয়াদি সরবরাহ করে, বহুভুজকে আবদ্ধ করে এবং অ্যাপ্লিকেশন এবং একটি সীমাবদ্ধ রাষ্ট্রের মেশিনের মতো কাজ করে
এটি করার জন্য আরও ভাল বা আরও সাধারণ উপায় আছে কি? একটি ক্যাচ-অল ক্লাসের মতো যাতে সমস্ত বিভিন্ন অবজেক্টের জন্য সম্ভাব্য পরামিতি এবং পদ্ধতি রয়েছে। (আমি মনে করি এটি আরও বিভ্রান্তিকর কোড তৈরি করবে)