Γεγονότα
Πρώτα, κάντε κλικ στην καρτέλα Event sheet 1 που βρίσκεται στην κορυφή, για να πάτε στον επεξεργαστή γεγονότων (event sheet editor). Μία λίστα από γεγονότα / εντολές ονομάζεται Event sheet (λίστα γεγονότων). Μπορείτε να έχετε διαφορετικές λίστες για διαφορετικά σημεία του παιχνιδιού σας για λόγους οργάνωσης. Μία λίστα μπορεί να εμπεριέχει (include) άλλες λίστες, επιτρέποντάς σας έτσι να χρησιμοποιήσετε ξανά τις ίδιες εντολές μεταξύ διαφορετικών σκηνών για παράδειγμα, αλλά προς το παρόν εμείς δε θα χρειαστούμε κάτι τέτοιο.
Σχετικά με τις εντολές / γεγονότα
Το Construct 2 διαβάζει τις εντολές της εκάστοτε λίστας μία φορά ανά τικ (tick). Τα περισσότερα μόνιτορ ανανεώνουν το περιεχόμενο που απεικονίζουν 60 φορές το δευτερόλεπτο, έτσι το Construct 2 προσπαθεί να ταιριάξει το ρυθμό ανάγνωσης των εντολών με το ρυθμό ανανέωσης της εικόνας για την πιο ομαλή απεικόνιση. Αυτό σημαίνει ότι συνήθως η κάθε λίστα διαβάζεται 60 φορές το δευτερόλεπτο και μετά από κάθε ανάγνωση η εικόνα ξανά-δημιουργείται, αντικατοπτρίζοντας τις όποιες μεταβολές υπάρχουν. Το τικ (tick) είναι ακριβώς αυτό - μία μονάδα από "διάβασε τις εντολές και ανανέωσε την εικόνα".
Οι εντολές διαβάζονται από πάνω προς τα κάτω, έτσι τα γεγονότα στην αρχή της λίστας θα διαβαστούν πρώτα.
Προϋποθέσεις, δράσεις και υπό-εντολές (conditions, actions and sub-events)
Οι εντολές / γεγονότα απαρτίζονται από Προϋποθέσεις ή συνθήκες (conditions), οι οποίες ελέγχουν εάν απαντώνται ορισμένα κριτήρια, π.χ. "Είναι το πλήκτρο spacebar πατημένο?". Εάν οι προϋποθέσεις εκπληρωθούν, η αντίστοιχες δράσεις (actions) θα εκτελεστούν, π.χ. "δημιούργησε ένα στοιχείο Bullet". Αφού οι δράσεις ολοκληρωθούν, οποιαδήποτε υπό-εντολή εκτελείται αντίστοιχα - αυτές μπορούν να περιέχουν συνθήκες και να ελέγχουν αν πληρούνται τα κριτήριά τους και ούτω καθ' εξής. Με αυτό το σύστημα μπορούμε να χτίσουμε πολυσύνθετες λειτουργίες στα παιχνίδια και στις εφαρμογές μας. Στο μάθημα αυτό δε θα χρειαστούμε υπό-εντολές όμως.
Ας ξαναδούμε πως λειτουργεί το σύστημα:
Απαντώνται όλα μας τα κριτήρια?
--->Ναι: Εκτέλεσε όλες τις δράσεις της εντολής.
--->Όχι: Πήγαινε στην επόμενη εντολή (αγνοώντας όλες τις υπό-εντολές)
Το παραπάνω είναι λιγάκι υπέρ-απλουστευμένο, αλλά προς το παρόν αυτός είναι ένας καλός τρόπος να σκεφτόμαστε πως λειτουργεί το σύστημα εντός του Construct 2.
Η Πρώτη σας εντολή
Θέλουμε ο παίχτης μας να κοιτάει συνέχεια προς τον κέρσορα του ποντικιού. Αυτό είναι που θέλουμε να φτιάξουμε:
Θυμηθείτε ότι ένα τικ τρέχει κάθε φορά που η οθόνη ανανεώνεται, έτσι, αν κάνουμε τον παίχτη να κοιτάει προς τον κέρσορα κάθε τικ, θα φαίνεται σαν να τον αντικρίζει διαρκώς.
Ας αρχίσουμε να φτιάχνουμε την εντολή αυτή. Κάντε διπλό αριστερό κλικ μέσα στη σελίδα της λίστας. Θα μας ζητηθεί να προσθέσουμε μία προϋπόθεση (condition) για το καινούριο γεγονός.
Σε κάθε στοιχείο προσφέρονται διαφορετικές προϋποθέσεις και δράσεις, ανάλογα με το τι δύναται να κάνει. Υπάρχει και το System object (στοιχεία συστήματος), το οποίο αντιπροσωπεύει τις ενσωματωμένες λειτουργίες του Construct 2. Κάντε Διπλό αριστερό κλικ στο System object. Το μενού θα παραθέσει όλες τις προϋποθέσεις που υπάγονται στις λειτουργίες του συστήματος:
Κάντε Διπλό αριστερό κλικ πάνω στο Every click για να την εισαγάγετε. Το μενού θα κλείσει και μία εντολή με μία προϋπόθεση και καμία δράση θα έχει δημιουργηθεί. Θα πρέπει να βλέπετε αυτό:
Τώρα θέλουμε να προσθέσουμε τη δράση που θα κάνει τον παίχτη να κοιτάει τον κέρσορα του ποντικιού. Κάντε αριστερό κλικ πάνω στο Add action (προσθήκη δράσης) στα δεξιά της εντολής. (Βεβαιωθείτε ότι κάνετε κλικ πάνω στο Add action και όχι στο Add event* που βρίσκεται από κάτω, διότι το τελευταίο θα δημιουργήσει μία καινούρια, διαφορετική εντολή.). Το μενού Προσθήκη δράσης (Add action dialog) θα εμφανιστεί:
Όπως και με την προσθήκη προϋπόθεσης, κι εδώ παρατίθενται τα ίδια στοιχεία για να επιλέξουμε μεταξύ αυτών, με τη διαφορά πως αυτή τη φορά θα αφορά σε προσθήκη δράσης. Προσπαθήστε να μην μπερδευτείτε μεταξύ της προσθήκης προϋποθέσεων και δράσεων. Όπως σας υποδεικνύουμε, κάντε διπλό αριστερό κλικ στο στοιχείο Player, διότι αυτό είναι που θέλουμε να κάνουμε να κοιτάει τον κέρσορα. Θα εμφανιστούν οι διαθέσιμες δράσεις για το στοιχείο Player:
Παρατηρήστε πως η συμπεριφορά 8-direction movement παρέχει τις δικές της δράσεις. Για την ώρα όμως, αυτό δεν μας απασχολεί.
Αντί για να ορίσουμε την γωνία του παίχτη βάσει κάποιου αριθμού μοιρών, μας συμφέρει να χρησιμοποιήσουμε τη δράση Set angle towards position. Αυτή θα υπολογίζει αυτόματα τη γωνία μεταξύ του παίχτη και της εκάστοτε θέσης του ποντικιού και θα στρέφει τον παίχτη ανάλογα, ορίζοντας τη γωνία του ανάλογα με το αποτέλεσμα της παραπάνω πράξης. Κάντε Διπλό αριστερό κλικ στη δράση Set angle towards position.
Το Construct 2 χρειάζεται να γνωρίζει τις συντεταγμένες του παίχτη σε σχέση με τον οριζόντιο (Χ) και κάθετο άξονα (Υ). Αυτές είναι που ορίζουν τη θέση του στη σκηνή:
Αυτές είναι οι παράμετροι (parameters) της δράσης. Και οι προϋποθέσεις έχουν παραμέτρους, αλλά το Every tick δεν απαιτεί καμία.
Θέλουμε να στρέψουμε τη γωνία του παίχτη προς τον κέρσορα. Το στοιχείο Mouse μας παρέχει τη δυνατότητα αυτή. Γράψτε Mouse.X και *Mouse.Y για τους άξονες X και Y αντίστοιχα. Τα παραπάνω λέγονται εκφράσεις (expressions). Σκεφτείτε τις εκφράσεις σαν ποσά μέσα σε μία εξίσωση. Για παράδειγμα, θα μπορούσατε να γράψετε Mouse.X + 100 ή sin(Mouse.Y)* (αν και τα συγκεκριμένα παραδείγματα δεν θα ήταν ιδιαίτερα χρήσιμα στην περίπτωσή μας!). Με τον τρόπο αυτό μπορείτε να χρησιμοποιήσετε οποιαδήποτε παράμετρο από ένα στοιχείο μέσα σε μία εξίσωση και να ορίσετε το αποτέλεσμα σαν παράμετρο μέσα σε προϋποθέσεις ή δράσεις. Είναι ένας πολύ ισχυρός, αν και κάπως κρυμμένος, τρόπος που δείχνει την ευελιξία του προγραμματισμού εντός του Construct 2.
Ειδοποιηθήκατε για σφάλμα που γράφει "Mouse is not an object name"? Σιγουρευτείτε ότι έχετε προσθέσει το στοιχείο Mouse στο πρότζεκτ σας! Δείτε στη σελίδα 2 την παράγραφο "Προσθήκη στοιχείων χειρισμού (input objects)".
Μπορεί να αναρωτιέστε πως θα θυμάστε όλες τις πιθανές εκφράσεις (expressions) που υπάρχουν. Ευτυχώς, υπάρχει ένα "πάνελ στοιχείων" που θα πρέπει να βρίσκεται από πάνω. Εξ ορισμού είναι ημιδιαφανές για να μην σας αποσπά την προσοχή.
Πηγαίνετε το ποντίκι από πάνω του, ή κάντε κλικ εντός του και θα γίνει πλήρως ορατό. Το πάνελ αυτό είναι ένα είδος λεξικού / ευρετηρίου διαθέσιμων εκφράσεων (expressions), που σας βοηθά να τις θυμάστε. Εάν κάνετε διπλό αριστερό κλικ σε κάποιο από τα στοιχεία, θα δείτε μία λίστα από τις διαθέσιμες εκφράσεις για το στοιχείο αυτό. Εάν κάνετε διπλό κλικ σε μία έκφραση, αυτή θα εισηχθεί στο πεδίο της προεπιλεγμένης παραμέτρου, έτσι δε θα χρειαστεί να τη γράψετε εσείς.
Ας κάνουμε κλικ στο Done στο πάνελ με τις παραμέτρους. Η δράση προστέθηκε στην εντολή μας! Όπως είδατε και πριν, θα πρέπει να φαίνεται ως εξής:
Αυτή είναι η πρώτης σας ολοκληρωμένη εντολή! Τρέξτε το παιχνίδι και τώρα ο παίχτης θα κινείται όπως πριν με τα βελάκια, αλλά θα κοιτάζει διαρκώς προς το σημείο του κέρσορα. Αυτή ήταν η πρώτη μας εξειδικευμένη λειτουργία.