Wednesday, January 23, 2013

Κομμάτια βιβλιοθήκης

Σκελετός


H Real Library χωρίζεται σε 8 χώρους ονομάτων ( namespaces ) κάτω από το βασικό χώρο ονόματος real το οποίο συμπεριλαμβάνει όλη την λειτουργία της βιβλιοθήκης. Κάθε κομμάτι ασχολείται με διαφορετικές λειτουργίες και είναι υπεύθυνο για αυτήν. 

·         core
Κορμός της βιβλιοθήκης.

·         input
Λειτουργίες από είσοδο χρήστη.

·         graphics
Απεικόνιση γραφικών στην οθόνη.

·         physics
Εφαρμογή νόμων κλασσικής μηχανικής.

·         audio
Αναπαραγωγή ήχων από την συσκευή ήχου/ηχεία.

·         script
Ενσωμάτωση δυνατότητας εκτέλεσης από γλώσσα δέσμης ενεργειών.

·         bind
Ορισμός της σύνταξης των εντολών της γλώσσα δέσμης ενεργειών για αυτήν την βιβλιοθήκη.

·         base
Συγχώνευση όλων των επιμέρους κομματιών κάτω από μία διεπαφή.


Λειτουργία


Στο κομμάτι core λαμβάνουν χώρα όλες οι βασικές αλλά σημαντικές λειτουργίες της βιβλιοθήκης.  Σκεφτείτε το σαν τον κορμό της βιβλιοθήκης από όπου όλα τα υπόλοιπα στοιχεία της αντλούν στοιχεία για την λειτουργία τους. Λειτουργεί σαν οδηγός τους στο πως θα επικοινωνήσουν μεταξύ τους και πως θα συμπεριφερθούν.
Στα κομμάτια audio και graphics όπως είναι αντιληπτό λαμβάνουν χώρα οι λειτουργίες αναπαραγωγής ήχου και απεικόνησης γραφικών και είναι ανεξάρτητα το ένα από το άλλο.
Στο κομμάτι physics λαμβάνει χώρα η εξομοίωση της φυσικής σύμφωνα με τους νόμους της κλασσικής μηχανικής και ο έλεγχος συγκρούσεων μεταξύ των επιμέρους σωμάτων σταθερής δομής (rigidbodies).
Στο κομμάτι input γίνεται ο έλεγχος των εισόδων του χρήστη από της συσκευές εισόδου ( πληκτρολόγιο, ποντίκι ).
Στο κομμάτι script ενσωματώνεται η δυνατότητα να εκτελούνται σενάρια (scripts) της γλώσσας δέσμης ενεργειών από την Real Library. Ενώ το κομμάτι bind ορίζει την σύνταξη των εντολών κλήσης κλάσεων και συναρτήσεων της Real Library από σενάρια της γλώσσας δέσμης ενεργειών. Η Real Library είναι γραμμένη σε C++. Στην ουσία αυτά τα δύο κομμάτια επιτρέπουν την αμφίδρομη επικοινωνία μεταξύ C++ και Lua. Αν και φαίνεται ότι και τα δύο κομμάτια ασχολούνται με το ίδιο πράγμα στην ουσία η διαφορά είναι ότι στο script επιτυγχάνεται η επικοινωνία ενώ στο bind επιτυγχάνεται ο ορισμός νέων εντολών Lua.
Τέλος το κομμάτι base είναι υπεύθυνο να συνδιάσει όλα τα προηγούμενα κομμάτια κάτω από μία κοινή διεπαφή την οποία θα χρησιμοποιήσει ο χρήστης για να δημιουργήσει εφαρμογές. Είναι εκείνο το κομμάτι που τον ενδιαφέρει περισσότερο κυρίως αφού όλα τα υπόλοιπα είναι κατά κάποιο τρόπο ποιο εσωτερικά στοιχεία.