আমি সত্তা সিস্টেমগুলির ধারণাটিতে মোটামুটি নতুন, প্রচুর স্টাফ পড়ে (সবচেয়ে কার্যকরভাবে, এই দুর্দান্ত ব্লগ এবং এই উত্তর )।
যদিও আমি বুঝতে অসুবিধে হচ্ছি যে কত সহজ সরল কোনও অপরিবর্তিত সংখ্যক উত্স দ্বারা কোনও অবজেক্টের অবস্থানকে সামাল দিতে সক্ষম।
এটি হ'ল আমার সত্তা রয়েছে, যার একটি অবস্থান উপাদান রয়েছে। আমার তখন গেমের কিছু ইভেন্ট রয়েছে যা এই সত্তাকে একটি নির্দিষ্ট সময়ে, একটি নির্দিষ্ট দূরত্ব সরিয়ে নিতে বলে।
এই ইভেন্টগুলি যে কোনও সময় ঘটতে পারে এবং অবস্থান এবং সময়ের জন্য পৃথক মান থাকবে। ফলাফলটি হল যে তারা একসাথে মিশ্রিত হবে।
একটি traditionalতিহ্যবাহী ওও সমাধানে, আমার কিছু MoveBy
শ্রেণি থাকতে হবে, এতে আমার দূরত্ব / সময় এবং আমার গেম অবজেক্ট ক্লাসের ভিতরে থাকা একটি অ্যারে থাকে। প্রতিটি ফ্রেম, আমি সমস্তটি দিয়ে পুনরাবৃত্তি করতাম MoveBy
এবং এটি অবস্থানটিতে প্রয়োগ করতাম। যদি MoveBy
এটির সমাপ্তির সময়টি পৌঁছে যায় তবে এটিকে অ্যারে থেকে সরান।
সত্তা সিস্টেমের সাথে আমি কীভাবে এই ধরণের আচরণের প্রতিলিপি তৈরি করব সে সম্পর্কে আমি কিছুটা বিভ্রান্ত।
যদি এগুলির মধ্যে কেবলমাত্র একটি ছিল, তাদের একসাথে মিশ্রিত করার পরিবর্তে, এটি মোটামুটি সোজা হবে (আমি বিশ্বাস করি) এবং এর মতো কিছু দেখতে চাই:
PositionComponent
ধারণকারী x, y
MoveByComponent
ধারণকারী x, y, time
Entity
যার দুটি PositionComponent
এবং কMoveByComponent
MoveBySystem
যা এই উভয় উপাদান সহ সত্তার সন্ধান করে এবং এর মান যুক্ত MoveByComponent
করে PositionComponent
। যখন time
পৌঁছে যায়, এটি সেই সত্তা থেকে উপাদানটিকে সরিয়ে দেয়।
আমি কীভাবে অনেকগুলি সরানো দিয়ে একই জিনিস করব তা নিয়ে আমি কিছুটা বিভ্রান্ত।
আমার প্রাথমিক চিন্তাভাবনাগুলি হ'ল:
PositionComponent
, MoveByComponent
উপরের মত একই
MoveByCollectionComponent
যা MoveByComponent
এস এর অ্যারে ধারণ করে
MoveByCollectionSystem
যেটি একটি PositionComponent
এবং একটি সহ সত্তার সন্ধান করে, এটির অভ্যন্তরে MoveByCollectionComponent
এসটি দিয়ে পুনরাবৃত্তি MoveByComponent
করে, প্রয়োজনীয়ভাবে প্রয়োগ / অপসারণ করে।
আমি অনুমান করি যে এটি একই সাধারণ উপাদানগুলির অনেকগুলি থাকা এবং প্রতিটিটির সাথে কাজ করার জন্য সংশ্লিষ্ট সিস্টেম চাই। আমার সত্তা উপাদান উপাদানগুলির একটি হ্যাশের ভিতরে তাদের উপাদানগুলি অন্তর্ভুক্ত করে -> উপাদান, তাই প্রতি সত্তা নির্দিষ্টভাবে নির্দিষ্ট ধরণের মাত্র 1 উপাদান রয়েছে।
এটি তাকানোর সঠিক উপায় কি?
কোনও সত্তার কি সর্বদা সর্বদা প্রদত্ত ধরণের একটি উপাদান থাকা উচিত?
move x by 10 in 2 seconds
এবং move x by -10 in 2 seconds
সত্তা পুরোপুরি স্থির হয়?
MoveBy
কার্যকারিতার মতো শব্দগুলি কি কেবল একটি বেগ হয়? মনে হচ্ছে আপনি সঠিক পথে আছেন। আপনার দ্বিতীয় প্রশ্নের জন্য, সত্তা / উপাদান সিস্টেমের প্রচুর বিভিন্ন বাস্তবায়ন রয়েছে। আপনি যে উত্তরটি যুক্ত করেছেন তার মধ্যে বর্ণিত একটির মধ্যে একটি প্রদত্ত প্রকারের কেবল একটি উপাদান থাকবে।