background image

2. Runtime Update

3. Rendering Phase

4. Shutdown / Cleanup

Κατά τη φάση ενημέρωσης (update), καλούνται διαδοχικά τα ενεργά συστήματα. Κατά τη

φάση απόδοσης, το RenderSystem συλλέγει τα απαραίτητα components και ενεργοποιεί το

rendering pipeline.

4.7

Σύστημα Components

Στην αρχιτεκτονική Entity–Component–System (ECS), τα Components αποτελούν το βα-

σικό δομικό στοιχείο περιγραφής των ιδιοτήτων μιας οντότητας. Όπως έχει ήδη αναφερθεί,

τα components αποτελούν απλές δομές δεδομένων, χωρίς να ενσωματώνουν λειτουργικότητα.

Στην παρούσα ενότητα παρουσιάζονται τα components που υλοποιήθηκαν στο πλαίσιο της συ-

γκεκριμένης εργασίας.

Το πλήθος των components που διαθέτουν οι εμπορικές μηχανές παιχνιδιών είναι σαφώς

μεγαλύτερο από εκείνο που παρουσιάζεται εδώ. Ωστόσο, στόχος της εργασίας είναι, αφενός, η

κάλυψη των βασικών και θεμελιωδών στοιχείων και, αφετέρου, η διαμόρφωση της απαραίτητης

αρχιτεκτονικής βάσης. Η λογική που ακολουθείται για την προσθήκη επιπλέον components

παραμένει η ίδια και μπορεί να επεκταθεί με συνέπεια, ακολουθώντας τα ήδη καθορισμένα

πρότυπα σχεδιασμού.

4.7.1

Transform Component

Το Transform Component αποτελεί το βασικότερο component της μηχανής, καθώς περιγρά-

φει τη γεωμετρική κατάσταση μιας οντότητας στον χώρο. Συγκεκριμένα, καθορίζει τη θέση, τον

προσανατολισμό και την κλίμακα ενός αντικειμένου, επιτρέποντας τον υπολογισμό του τελικού

μετασχηματισμού που χρησιμοποιείται στο rendering pipeline.

Στο πλαίσιο της αρχιτεκτονικής ECS, το Transform υλοποιείται ως καθαρή δομή δεδομένων,

χωρίς επιχειρησιακή λογική, διατηρώντας τον διαχωρισμό μεταξύ δεδομένων και συστημάτων

επεξεργασίας. Στην ενότητα 3.5.3. Μετάβαση στην Αρχιτεκτονική Entity–Component–System

(ECS) έχει δωθεί ώς παράδειγμα η κλάση Transform_Component.

4.7.2

SpriteRenderer Component

Το SpriteRenderer Component είναι υπεύθυνο για την οπτική αναπαράσταση δισδιάστατων

οντοτήτων στη σκηνή. Αποτελεί το βασικό component γραφικής απόδοσης για 2D εφαρμογές

και λειτουργεί σε συνδυασμό με το Transform Component και το RenderSystem.

37