background image

bool intersect(AABB2D const& aabb1, AABB2D const& aabb2)

{

return (aabb1.min.x < aabb2.max.x && aabb1.max.x > aabb2.min.x &&

aabb1.min.y < aabb2.max.y && aabb1.max.y > aabb2.min.y);

}

bool intersect(AABB2D const& aabb, glm::vec2 const& point)

{

return (point.x >= aabb.min.x && point.x <= aabb.max.x &&

point.y >= aabb.min.y && point.y <= aabb.max.y);

}

Με την ολοκλήρωση της παρουσίασης της αρχιτεκτονικής και των βασικών υποσυστημά-

των της μηχανής, έγινε σαφές πώς υλοποιούνται οι κύριοι μηχανισμοί που υποστηρίζουν τη λει-

τουργία της, όπως το σύστημα απόδοσης γραφικών, η αρχιτεκτονική Entity Component System,

καθώς και τα επιμέρους components που επιτρέπουν την αναπαράσταση αντικειμένων, φωτι-

σμού, ήχου και στοιχείων διεπαφής χρήστη. Η ανάλυση αυτή επικεντρώθηκε κυρίως στις τεχνι-

κές επιλογές και στις δομές λογισμικού που συγκροτούν τον πυρήνα της μηχανής.

Στο επόμενο κεφάλαιο η προσέγγιση μετατοπίζεται από την εσωτερική υλοποίηση προς την

πρακτική αξιοποίηση της μηχανής. Πιο συγκεκριμένα, παρουσιάζεται ο τρόπος με τον οποίο τα

εργαλεία και τα συστήματα που περιγράφηκαν μπορούν να χρησιμοποιηθούν για την ανάπτυξη

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

μιας απλής εφαρμογής, αναδεικνύεται η ροή εργασίας που ακολουθεί ο χρήστης της μηχανής,

καθώς και ο τρόπος με τον οποίο τα επιμέρους components συνεργάζονται για τη δημιουργία

ενός ολοκληρωμένου παιχνιδιού.

49