5.1.3
Υλοποίηση λογικής του παιχνιδιού
Έχοντας υλοποιήσει όλα τα παραπάνω, το επόμενο βήμα είναι η τελική σύνθεσή τους, ώστε
να προκύψει ένα ολοκληρωμένο αποτέλεσμα.
Όπως αναφέρθηκε προηγουμένως, η πρώτη και η τελευταία σκηνή του παιχνιδιού είναι στα-
τικές και η μοναδική τους λειτουργικότητα παρέχεται μέσω των κουμπιών που περιέχουν. Για
τον λόγο αυτό υλοποιούνται κατάλληλες συναρτήσεις ανάκλησης (callbacks) για κάθε κουμπί.
Το κουμπί Exit εκτελεί την προφανή λειτουργία του τερματισμού της εφαρμογής, ενώ το κου-
μπί Start αρχικοποιεί τη μεταβλητή startgame, η οποία σηματοδοτεί τη μετάβαση στην επόμενη
σκηνή.
Η σκηνή του παιχνιδιού είναι εκείνη που συγκεντρώνει το μεγαλύτερο μέρος της λειτουρ-
γικότητας. Αρχικά, ορίζονται και αρχικοποιούνται διάφορες σταθερές του παιχνιδιού, όπως το
μέγεθος της γραμματοσειράς, η αρχική θέση του παίκτη, το πλήθος και οι αρχικές θέσεις των
αντιπάλων, καθώς και το πλήθος και οι θέσεις των στατικών αντικειμένων της σκηνής. Στη συ-
νέχεια αρχικοποιούνται τα αντίστοιχα αντικείμενα των κλάσεων Player, Enemy, SceneObject,
καθώς και ο AudioManager.
Κατά τη διάρκεια κάθε ενημέρωσης (update) της σκηνής πραγματοποιείται αρχικά έλεγχος
για συνθήκες νίκης ή ήττας, δηλαδή ελέγχεται αν υπάρχουν ακόμη ενεργοί αντίπαλοι ή αν οι
μονάδες ζωής του παίκτη έχουν μηδενιστεί.
Στη συνέχεια, για κάθε αντίπαλο που βρίσκεται ακόμη ενεργός στη σκηνή, πραγματοποιείται
έλεγχος απόστασης και σύγκρουσης με τον παίκτη (collision detection). Σε περίπτωση επαφής,
αφαιρείται μία μονάδα ζωής από τον παίκτη. Αντίστοιχα, πραγματοποιείται έλεγχος και για την
περίπτωση κατά την οποία ο παίκτης εκτελεί ενέργεια επίθεσης∙ εφόσον το πλήκτρο επίθεσης
έχει ενεργοποιηθεί και υπάρχει σύγκρουση με έναν αντίπαλο, αφαιρείται μία μονάδα ζωής από
τον αντίπαλο.
Τέλος, εκτελείται παρόμοιος έλεγχος και για τα αστέρια ζωής που βρίσκονται στη σκηνή. Σε
περίπτωση σύγκρουσης μεταξύ του παίκτη και ενός τέτοιου αντικειμένου, ο παίκτης λαμβάνει
μία επιπλέον μονάδα ζωής.
Σε κάθε λειτουργία του παιχνιδιού που συνοδεύεται από ηχητική ανατροφοδότηση, κατά τη
διαδικασία ενημέρωσης (update) καλείται και ο αντίστοιχος ήχος μέσω του συστήματος διαχεί-
ρισης ήχου. Για παράδειγμα, αναπαράγονται κατάλληλα ηχητικά εφέ κατά την εκτέλεση ενερ-
γειών όπως το χτύπημα και το άλμα του χαρακτήρα, καθώς και σε περιπτώσεις απώλειας ή
ανάκτησης μονάδων ζωής. Επιπλέον, αντίστοιχα ηχητικά εφέ ενεργοποιούνται κατά την ολο-
κλήρωση του παιχνιδιού, τόσο στην περίπτωση νίκης όσο και στην περίπτωση ήττας.
5.2
Δημιουργία (Top down) παιχνιδίου
Στην παρούσα υποενότητα παρουσιάζεται ο σχεδιασμός και η υλοποίηση ενός ακόμη παι-
χνιδιού, αυτή τη φορά ενός δισδιάστατου παιχνιδιού τύπου top-down. Η γενική δομή παραμένει
αντίστοιχη με αυτή που παρουσιάστηκε προηγουμένως.
57