7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα ΕΝΤΟΛΕΣ χρησιμοποιηθούν παρακάτω στα παραδείγματα Βάζοντας την εντολή αυτή σε οποιοδήποτε χαρακτήρα μπορούμε να αλλάζουμε όψεις (δηλαδή ενδυμασία). Η εντολή αυτή κάνει ο,τι και η παραπάνω με τη διαφορά ότι δεν επιλέγουμε άμεσα την όψη που θέλουμε, αλλά έμμεσα ανάλογα με ποια σειρά τις έχουμε επιλέξει από την επιλογή ενδυμασίες του κάθε χαρακτήρα μας. Δεν είναι ακριβώς εντολή, αλλά μια επιλογή, όπου αν την επιλέξουμε μας εμφανίζει στο παράθυρό μας ποια ενδυμασία χρησιμοποιεί ο χαρακτήρας μας. Με την εντολή αυτή διαλέγουμε χαρακτήρας μας να είναι μπροστά από οποιονδήποτε χαρακτήρα του προγράμματος μας (αρκεί βέβαια να μην έχουμε κάνει χρήση της εντολής αυτή και για άλλον χαρακτήρα). Με αυτή την εντολή μπορούμε να διαλέξουμε σε ποιο επίπεδο επιθυμούμε να βρίσκεται ο κάθε χαρακτήρας. 7.1 Αλλάζοντας όψεις εύκολα, γρήγορα και προσεκτικά... Όπως και στα κόμικς, έτσι και οι χαρακτήρες που θα δημιουργήσουμε εμείς θα πρέπει μας να έχουν διαφορετικές όψεις (δηλαδή διαφορετική ενδυμασία), ανάλογα με την περίσταση. Φανταστείτε τι θα γινότανε αν ο Σούπερμαν φορούσε μόνο τη στολή του! Δε θα ήταν πλέον άγνωστη η ταυτότητά του. Αυτά μπορούν να πραγματοποιηθούν με την χρήση των παρακάτω εντολών. Με τη βοήθεια των εντολών <αλλαγή σε ενδυμασία ενδυμασία1 > και <επόμενη ενδυμασία> μπορούμε να αλλάξουμε την όψη (ενδυμασία) του χαρακτήρα μας. Μπορούμε να σκεφτούμε παραδείγματα όπου θα χρησιμοποιούσαμε κάτι τέτοιο? Εκτός από τον Μπάτμαν και το Σούπερμαν τι άλλο περιστατικό θα μπορούσαμε να επιτύχουμε με τη χρήση των παραπάνω εντολών? Ένα απλό παράδειγμα είναι όταν θέλουμε να απεικονίσουμε έναν ήρωα μας να περπατάει ή όταν θέλουμε ο χαρακτήρας μας να κάνει τραμπολίνο και να κάνει διαφορετικές φιγούρες ή απλά να τον κάνουμε να χορεύει! Παράδειγμα 1 Ξεκινάμε να περπατάμε!!! Το παράδειγμα που θα μπορούσαμε να επικεντρωθούμε περισσότερο προκειμένου να έχει πιο πολύ ενδιαφέρον για όλους μας είναι πως θα καταφέρουμε να δημιουργήσουμε ένα αντικείμενο να κινηθεί. Βέβαια η κίνηση που έχουμε μάθει σε προηγούμενα κεφάλαια ( στο κεφάλαιο 5 ) δεν κάνει τίποτε παραπάνω από το να αλλάζει θέση το αντικείμενό μας στο γραφικό μας περιβάλλον. Ας δούμε πώς μπορεί ένα κινούμενο σχέδιο να κινηθεί. Τα κινούμενα σχέδια είναι μια σειρά από
εικόνες οι οποίες αλλάζουν πολύ γρήγορα για να δημιουργηθεί η ψευδαίσθηση σε αυτόν που το παρακολουθεί ότι υπάρχει κίνηση. Αν ακολουθήσουμε κι εμείς την ίδια τακτική με αυτή που είπαμε, τότε απλά θα έπρεπε να δημιουργήσουμε διαφορετικές όψεις ( του αντικειμένου που θέλουμε να κάνουμε να περπατήσει ) που με τον κατάλληλο χρονισμό και την σωστή εναλλαγή να φανεί σαν να περπατάει στην πραγματικότητα. Για καλή μας τύχη στο πρόγραμμα μας υπάρχουν αυτές οι όψεις που χρειαζόμαστε για ένα συγκεκριμένο αντικείμενο. Έτσι το αντικείμενο που θα χρησιμοποιήσουμε είναι αυτό της εικόνας 7.1.1 το οποίο το ονομάζουμε Βήμα_1. Εν συνεχεία θα διαλέξουμε τις διαφορετικές όψεις που θα μας βοηθήσουν προκειμένου να επιτύχουμε τον τελικό μας στόχο. Αυτές οι όψεις θα επιλεχθούν ως ενδυμασίες για το αντικείμενό μας και θα είναι αυτές που βλέπουμε στην Εικόνα 7.1.2. Έχουμε κάνει μια πολύ καλή αρχή, αλλά πρέπει να ξανασκεφτούμε αυτά που έχουμε πει στην αρχή. Θέλουμε δηλαδή να κάνουμε σωστό χρονισμό μεταξύ τον εναλλαγών των ενδυμασιών μας καθώς και να κάνουμε πετυχημένη εναλλαγή για να φαίνεται σωστή η κίνηση του αντικειμένου μας. Ξεκινάμε τη συγγραφή του κώδικά μας για το αντικείμενο. Αρχικά ορίζουμε την αρχική θέση που θέλουμε να ξεκινάει να περπατάει το αντικείμενό μας. Έστω πως θα θα ξεκινάει από τη θέση x=-180 και y=0. Στη συνέχεια επιλέγουμε να επαναλαμβάνονται οι εντολές της κίνησης με τη χρήση της <Για πάντα> όπου τη σημασία της θα την ορίσουμε σε παρακάτω κεφάλαιο. Τώρα θα προσπαθήσουμε να εφαρμόσουμε, με τη χρήση κατάλληλων εντολών, όσα λέγαμε παραπάνω. Έτσι ξεκινάμε πρώτα με την εντολή <αλλαγή σε ενδυμασία Βήμα_1 >, κινούμαστε ομαλά για 10 στον άξονα των x με τη βοήθεια της εντολής <άλλαξε χ κατά 10 > και περιμένουμε για 0,25 δευτερόλεπτα όπου έτσι επιτυγχάνουμε να έχουμε σωστή συχνότητα εναλλαγής των ενδυμασιών. Συνεχίζουμε με παρόμοιο τρόπο και για τις υπόλοιπες αλλαγές ενδυμασιών και έτσι καταφέραμε να κάνουμε το αντικείμενο μας να κινηθεί σωστά. Ο κώδικάς για την επανάληψη (εντολή <Για πάντα>) είναι στην Εικόνα 7.1.4, ενώ γι αυτό που θα εκτελείται συνέχεια με τη βοήθεια της εντολής <Για πάντα> είναι στην Εικόνα 7.1.3.
(Εδώ έχουμε την αρχή του κώδικα του προγράμματος μας όπου θέτουμε την αρχική θέση που θα ξεκινάει το αντικείμενο μας καθώς επίσης και την εντολή < Για πάντα >. ΠΡΟΣΟΧΗ: Στο κενό της εντολής < Για πάντα > βάζουμε τις εντολές της Εικόνας 7.1.3 και την εντολή αυτή θα την εξετάσουμε εκτενέστερα σε παρακάτω κεφάλαια. Παράδειγμα 2 Χόρεψε με τη σειρά Όπως είχαμε πει και στην εισαγωγή της υποενότητας 7.1 πως κάτι ακόμα που θα μπορούσαμε να κάνουμε είναι να κάνουμε ένα αντικείμενο να χορεύει. Για να μην είμαστε κουραστικοί και μονότονοι χρησιμοποιώντας μόνο την εντολή <αλλαγή σε ενδυμασία > θα κάνουμε χρήση της εντολής <επόμενη ενδυμασία>. Ας σκεφτούμε λοιπόν! Μπορούμε να αντικαταστήσουμε όλες τις εντολές της μορφής <αλλαγή σε ενδυμασία > με την εντολή της μορφής <επόμενη ενδυμασία>? Δυστυχώς η απάντηση μας δεν είναι ούτε καταφατική, ούτε αρνητική και μπορούμε να συμβιβαστούμε σε μια μέση κατάσταση. Δηλαδή στο πρώτο μας παράδειγμα μπορούμε να κάνουμε χρήση της εντολής <επόμενη ενδυμασία> με αυτές τις ενδυμασίες που διαθέτουμε και στη σειρά που τις έχουμε τοποθετήσει. Όμως άμα είχαμε κάνει το παράδειγμα με την μπαλαρίνα δε θα μπορούσαμε διότι οι κινήσεις δε θα επαναλαμβάνονταν με την ίδια σειρά όπως κάνουμε στην περίπτωση που περπατάμε. Ας δούμε το αντικείμενό μας να χορεύει κάνοντας χρήση της εντολής <επόμενη ενδυμασία>, αλλά και της εντολής-επιλογής για να βλέπουμε στο περιβάλλον εκτέλεσης του προγράμματος ποιά ενδυμασία εμφανίζεται εκείνη τη στιγμή. Έτσι θα μπορούσαμε να έχουμε τις παρακάτω εντολές : Με τις εντολές αυτές και έχοντας επιλέξει την παραπάνω επιλογή θα είχαμε τα εξής ενδεικτικά αποτελέσματα : Εικόνα 7.1.6 ΠΡΟΣΟΧΗ: Το αποτέλεσμα που θα παραχθεί από το πρόγραμμα μας (κάνοντας χρήση της εντολής <επόμενη ενδυμασία>) εξαρτάται πολύ από τη σειρά που έχουμε επιλέξει τις ενδυμασίες στο αντικείμενό μας.
Μην ξεχνάμε πως στα κόμικς δεν έχουμε μόνο τον πρωταγωνιστή, αλλά και τους υπόλοιπους χαρακτήρες που απαρτίζουν την ιστορία όπου θα αλληλεπιδρούν μεταξύ τους. Έτσι άλλες 2 εντολές που θα μας ήταν ιδιαίτερα χρήσιμες είναι η εντολή <πήγαινε σε πρώτο πλάνο > και <πήγαινε πίσω <1> επίπεδο>. Αρχικά τα αντικείμενα δεν έχουν ένα συγκεκριμένο επίπεδο στο περιβάλλον εκτέλεσης του προγράμματος, αλλά τυχαία (συνήθως το αντικείμενο που χειριστήκαμε τελευταίο είναι επιλέγεται αυτόματα να είναι σε πρώτο πλάνο). Γι αυτό το λόγο θα χρειαστεί να ορίζουμε κάθε φορά το επίπεδο στο οποίο επιθυμούμε να είναι το κάθε αντικείμενο. Μπορούμε να δημιουργήσουμε ένα απλό πρόγραμμα για κατανόηση όπου θα έχουμε 3 αντικείμενα ορισμένα στο ίδιο σημείο όπου και να είναι και τα 3 σε πρώτο πλάνο, κάνοντας χρήση της εντολής <πήγαινε σε πρώτο πλάνο > (το ίδιο μπορεί να συμβεί αν κάνουμε χρήση της εντολής <πήγαινε πίσω 0 επίπεδο> ). Παράδειγμα 3 Είμαι πιο Μπροστά απ' όλους... με τη βοήθεια εντολών... Έτσι θα έχουμε τις παρακάτω εντολές (βλέπε. Εικόνα 7.1.7) που θα είναι ίδιες για κάθε αντικείμενο : Εικόνα 7.1.7 Άρα έστω πως έχουμε τα εξής αντικείμενα : Εδώ απλά θέτουμε τη θέση x=0, y=0 και λέμε και στα 3 αντικείμενα είναι σε πρώτο πλάνο. Αν εκτελέσουμε αυτό θα διαπιστώσουμε πως κάθε φορά που το εκτελούμε διαφορετικό αντικείμενο βρίσκεται μπροστά από τα υπόλοιπα. Εικόνα 7.1.8 Εικόνα 7.1.9 Εικόνα 7.1.10 Αν εκτελούμε κάθε φορά τον ίδιο κώδικα τη μια φορά θα έχουμε το αποτέλεσμα της Εικόνας 7.1.11 και την επόμενη φορά θα έχουμε το αποτέλεσμα της Εικόνας 7.1.12. Εικόνα 7.1.11 Εικόνα 7.1.12
Θα μπορούσαμε να κάνουμε χρήση της εντολής <πήγαινε πίσω 1 επίπεδο> (όπου τον αριθμό θα τον αλλάζουμε ανάλογα με το επίπεδο που επιθυμούμε)προκειμένου να μην αφήνουμε τίποτα στην τύχη. Έτσι θα μπορούσαμε αν θέλαμε το αποτέλεσμα της Εικόνας 7.1.11 να εκτελούσαμε τον κώδικα της Εικόνας 7.1.13 (όπου αντιστοιχούνε στα αντικείμενα των Εικόνων 7.1.8-10) και διαφορετικά αν θέλαμε το αποτέλεσμα της Εικόνας 7.1.12 να εκτελούσαμε τον κώδικα της Εικόνας 7.1.14. Εικόνα 7.1.13 Εικόνα 7.1.14