আমি শেখার উদ্দেশ্যে (এবং পরে কিছু গেমের জন্য ব্যবহার করুন) জন্য একটি উপাদান-ভিত্তিক সত্তা সিস্টেমটি ডিজাইনের চেষ্টা করছি এবং সত্তার রাজ্যগুলি আপডেট করার ক্ষেত্রে আমার কিছু সমস্যা হচ্ছে।
উপাদানগুলির মধ্যে নির্ভরতা রোধ করতে আমি কম্পোনেন্টের অভ্যন্তরে একটি আপডেট () পদ্ধতি রাখতে চাই না।
আমার বর্তমানে যা মনে আছে তা হ'ল উপাদানগুলি ডেটা এবং সিস্টেম আপডেটের উপাদান রাখে।
সুতরাং, যদি আমার কিছু সত্তা (যেমন প্লেয়ার, শত্রু 1, শত্রু 2) এর সাথে একটি সাধারণ 2 ডি গেম থাকে যা ট্রান্সফর্ম, মুভমেন্ট, স্টেট, অ্যানিমেশন এবং রেন্ডারিং উপাদান রয়েছে আমার মনে হয় আমার উচিত:
- একটি মুভমেন্টসিস্টেম যা সমস্ত আন্দোলনের উপাদানগুলিকে সরিয়ে দেয় এবং রাজ্যের উপাদানগুলিকে আপডেট করে
- এবং একটি রেন্ডারসিস্টেম যা অ্যানিমেশন উপাদানগুলি আপডেট করে (অ্যানিমেশন উপাদানটির প্রতিটি রাজ্যের জন্য একটি অ্যানিমেশন (অর্থাত ফ্রেম / টেক্সচারের সেট থাকা উচিত) এবং এটি আপডেট করার অর্থ বর্তমান রাষ্ট্রের সাথে সম্পর্কিত অ্যানিমেশন নির্বাচন করা (যেমন জাম্পিং, মুভিং_এলফিট, ইত্যাদি) এবং ফ্রেম সূচক আপডেট করা)। তারপরে, রেন্ডারসিস্টেম প্রতিটি সত্তার অ্যানিমেশনের বর্তমান ফ্রেমের সাথে টেক্সচার সহ রেন্ডার উপাদানগুলি আপডেট করে এবং স্ক্রিনে সবকিছু রেন্ডার করে।
আমি আর্টেমিস ফ্রেমওয়ার্কের মতো কিছু বাস্তবায়ন দেখেছি, তবে এই পরিস্থিতি কীভাবে সমাধান করা যায় তা আমি জানি না:
ধরা যাক যে আমার গেমের নিম্নলিখিত সত্তা রয়েছে। প্রতিটি সত্তার প্রতিটি রাজ্যের জন্য একটি সেট এবং এক অ্যানিমেশন রয়েছে:
- খেলোয়াড়: "নিষ্ক্রিয়", "চলন্ত_ ডান", "জাম্পিং"
- শত্রু 1: "চলন্ত_আপ", "চলন্ত_ ডাউন"
- শত্রু 2: "চলন্ত_ বাম", "চলন্ত_ ডান"
প্রতিটি সত্তার বর্তমান অবস্থা আপডেট করতে সর্বাধিক গৃহীত পদ্ধতিগুলি কী কী? আমি একমাত্র যে বিষয়টির কথা ভাবতে পারি তা হল প্রতিটি গ্রুপের সত্তা এবং পৃথক স্টেট এবং অ্যানিমেশন উপাদানগুলির জন্য পৃথক সিস্টেম থাকা যাতে আমার প্লেয়ারস্টেট, প্লেয়ারঅ্যানিমেশন, শত্রু 1 স্টেট, এনিমি 1 অ্যানিমেশন ... প্লেয়ারমোভমেন্টসিস্টেম, প্লেয়াররেন্ডারিং সিস্টেম ... তবে আমার মনে হয় এটি একটি খারাপ সমাধান এবং একটি উপাদান-ভিত্তিক সিস্টেম থাকার উদ্দেশ্য ভঙ্গ করে।
আপনি দেখতে পাচ্ছেন যে, আমি এখানে বেশ হারিয়েছি, তাই আমি যে কোনও সাহায্যের খুব প্রশংসা করব।
সম্পাদনা: আমার মনে হয় এই কাজটি করার উদ্দেশ্যটি যেমন আমার ইচ্ছা তেমন সমাধানটি হ'ল:
আপনি স্টেটকম্পোন্ট এবং অ্যানিমেশন বিভাগকে সমস্ত সত্ত্বার জন্য যথেষ্ট জেনেরিক তৈরি করেন make তাদের থাকা ডেটা হ'ল কোন অ্যানিমেশনগুলি বাজানো হয় বা কোন রাজ্যগুলি উপলভ্য তা পরিবর্তিত করতে পারে things - বাইট 56
এখন, আমি কীভাবে এই 2 টি উপাদানগুলিকে পর্যাপ্ত জেনেরিক ডিজাইন করব তা বুঝতে চেষ্টা করছি যাতে আমি সেগুলি পুনরায় ব্যবহার করতে পারি। প্রতিটি রাজ্যের জন্য ইউআইডি থাকতে পারে (যেমন হাঁটা, দৌড়ানো ...) এবং এই শনাক্তকারীর দ্বারা কীড অ্যানিমেশনকম্পোনমেন্টে কোনও মানচিত্রে অ্যানিমেশনগুলি সংরক্ষণ করা ভাল সমাধান হতে পারে?
statecomponent
এবং animationcomponent
জেনেরিক যথেষ্ট সব সত্তার জন্য ব্যবহৃত হবে। তাদের থাকা ডেটা হ'ল কোন অ্যানিমেশনগুলি বাজানো হয় বা কোন রাজ্যগুলি উপলভ্য তা পরিবর্তিত করতে পারে things