Ενδικτικά δεινω παρακάτω το TransformComponent.
struct Transform_Component
{
glm::vec3 position;
glm::vec3 rotation;
glm::vec3 scale;
Transform_Component()
: position(0.0f), rotation(0.0f), scale(1.0f) {}
};
Systems
Τα Systems είναι υπεύθυνα για την επεξεργασία οντοτήτων που διαθέτουν συγκεκριμένο
σύνολο components. Για παράδειγμα:
• Το RenderSystem επεξεργάζεται οντότητες με Transform και SpriteRenderer.
• Το PhysicsSystem επεξεργάζεται οντότητες με Transform και PhysicsComponent.
• Το GUISystem καλεί μεθόδους για οντότητες με UiComponent.
Η προσέγγιση αυτή επιτρέπει:
• δυναμική σύνθεση συμπεριφοράς,
• καλύτερη κλιμάκωση σε μεγάλο αριθμό οντοτήτων,
• καθαρό διαχωρισμό δεδομένων και λογικής.
Συνοψίζοντας, ο χρήστης της μηχανής έχει πλέον τη δυνατότητα να συνθέσει μια δική του
οντότητα (game object), επιλέγοντας τα επιθυμητά χαρακτηριστικά μέσω της προσθήκης των
κατάλληλων components και ορίζοντας τη διάρκεια και τον τρόπο αξιοποίησής τους σύμφωνα
με τις ανάγκες της εφαρμογής.
34