যদি কোনও সত্তার কোনও স্পষ্টত 'টাইপ' (উদাঃ প্লেয়ার) না থাকে এবং কেবল উপাদানগুলির সংকলন হয়, তবে আমার সিস্টেমগুলি যে সত্ত্বাগুলি কাজ করা উচিত ছিল এবং সেগুলি কাজ করা উচিত নয় সেগুলি কীভাবে সনাক্ত করব? উদাহরণস্বরূপ, পংয়ের একটি খেলায় প্যাডেল এবং বল উভয়ই উইন্ডোটির সীমানার সাথে সংঘর্ষ হয়। তবে, প্রতিটিটির জন্য সংঘর্ষের হ্যান্ডলিং সিস্টেমগুলি আলাদা হবে, সুতরাং কোনও সিস্টেমকে ভুল ধরণের সত্তাগুলি পরিচালনা করা উচিত নয়।
void PlayerCollisionSystem::update(std::vector<Entity *> entities) {
typedef std::vector<Entity *>::iterator EIter;
for (EIter i = entities.begin(); i != entities.end(); ++i) {
Entity *player = *i; // How do I verify that the entity is a player?
// Get relevant components.
PositionComponent *position = player->getComponent<PositionComponent>();
VelocityComponent *velocity = player->getComponent<VelocityComponent>();
SpriteComponent *sprite = player->getComponent<SpriteComponent>();
// Detect and handle player collisions using the components.
}
}
খেলোয়াড় এবং বল উভয়ই সংঘর্ষ পরিচালনার জন্য একই প্রাসঙ্গিক উপাদান ধরণের ভাগ করে নিলেও তাদের সিস্টেমের প্রয়োগগুলি ভিন্ন হবে ations
আমার কাছে সমস্ত গেম সত্ত্বার ধারক থাকলে, উত্তরাধিকার সূত্রে Entityবা সদস্য ভেরিয়েবল সহ আমি কীভাবে সুনির্দিষ্ট ধরণের সত্তা সনাক্ত করতে পারিstd::string type , যেমন কোনও সত্তা আর কেবল উপাদানগুলির সংগ্রহ নয়?