Issuu on Google+

Εργαστηριακό μάθημα – Φύλλο δραστηριότητας Εξοικείωση με το περιβάλλον του GameMaker μέσα από την κατασκευή ενός παιχνιδιού Εκτιμώμενη διάρκεια: Δύο διδακτικές ώρες Προαπαιτούμενες γνώσεις: Οι μαθητές να γνωρίζουν τα βασικά στοιχεία και συνιστώσες του εργαλείου. Δηλαδή σε προηγούμενο μάθημα να έχει διδαχθεί το GameMaker-Tutorial. Οργάνωση τάξης: Κατά τη διδασκαλία του εργαστηριακού μαθήματος, οι μαθητές κάθονται ανά δύο σε κάθε υπολογιστή του εργαστηρίου και δουλεύουν ταυτόχρονα μέσα σε κλίμα συνεργασίας Δραστηριότητες ψυχολογικής και γνωστικής προετοιμασίας: Τα πρώτα 10 λεπτά γίνεται συζήτηση σχετικά με το τι ηλεκτρονικά παιχνίδια παίζουν οι μαθητές και αν θα τους ενδιέφερε να μπορούν να παράγουν και αυτοί τα δικά τους παιχνίδια, ώστε να προετοιμαστούμε για το συγκεκριμένο φύλλο δραστηριότητας. Περιγραφή του φύλλου δραστηριότητας διδασκαλίας γνωστικού αντικειμένου: Οι μαθητές ανοίγουν το λογισμικό και βρίσκονται αντιμέτωποι με το προγραμματιστικό περιβάλλον του GameMaker.

Για να επιταχυνθεί η διαδικασία εξοικείωσης καλό θα ήταν οι μαθητές να γνωρίζουν τη φιλοσοφία του gamemaker με τη βοήθεια της μεταφοράς/αλληγορίας του θεάτρου: • Το παιχνίδι είναι όπως ένα θεατρικό έργο • Υπάρχουν τα αντικείμενα (objects) που θα τα αντιστοιχίσουμε στους ηθοποιούς • Κάθε object-ηθοποιός παίρνει μια μορφή (sprite), κάτι σαν τη στολή που φοράει ο ηθοποιός για να παίξει κάποιον ρόλο.


• Ο ηθοποιός-object με τη μορφή sprite εμφανίζεται και δραστηριοποιείται (μία ή περισσότερες φορές) ως ρόλος στη σκηνή. • Η σκηνή (room) είναι μία (ή και η μοναδική) από τις οθόνες στις οποίες διαδραματίζεται το παιχνίδι (και στις οποίες πλοηγείται ο χρήστης). • Σε κάθε σκηνή-room εμφανίζονται αφενός οι ρόλοι και αφετέρου τα σκηνικά (backgrounds) που είναι γραφικά. Ως πρώτο βήμα ας δημιουργήσουμε το σκηνικό που θα χρησιμοποιήσουμε αργότερα για την πρώτη σκηνή (room)


Το επόμενο βήμα είναι να δημιουργήσουμε την πρώτη σκηνή (room)

…στην οποία βάζουμε ως σκηνικό το background «ΕΙΣΑΓΩΓΗ» που δημιουργήσαμε προηγουμένως


Τώρα θα φτιάξουμε το πλήκτρο που θα οδηγεί τον χρήστη στην επόμενη σκηνή(room). Για να γίνει αυτό χρειαζόμαστε πρώτα να δημιουργήσουμε μια εικόνα (μορφή-sprite) για το πλήκτρο.

Επιλέγοντας «Edit Sprite»…

… ανοίγει ο «Sprite Editor» και με διπλό κλικ στο εικονίδιο…

… ανοίγει ο «Image Editor»


Το επόμενο βήμα είναι να δημιουργήσουμε τον ηθοποιός-object που θα πάρει την μορφή-sprite «ΠΑΩ ΕΠΟΜΕΝΟ».

Η συμπεριφορά (το τι θα κάνει όταν βρεθεί στη σκηνή-room) του ηθοποιού-object «πάω επόμενο) γίνεται με οπτικό προγραμματισμό. Αυτό θα συμβεί όταν συμβεί κάποιο γεγονός-event. Άρα πατάμε «Add Event»…


Εμφανίζεται το μενού «Event Selector» και επειδή θέλουμε ο ηθοποιός-object να λειτουργεί ως πλήκτρο που δρα όταν πατηθεί το ποντίκι επιλέγουμε το «Mouse»…

… οπότε μας ζητείται να διευκρινίσουμε το «Left button»…


Το επόμενο βήμα είναι να προσδιορίσουμε τον τρόπο της ενέργειας (Action) όταν πατηθεί ηθοποιός-object με το αριστερό πλήκτρο του ποντικιού. Αυτό γίνεται με επιλογή της σωστής ενέργειας…

… σύρσιμο της συγκεκριμένης ενέργειας στην περιοχή Action και καθορισμό διαφόρων παραμέτρων της…


Τώρα ο ηθοποιός-object θα πρέπει να ανέβει στη σκηνή-room και να υποδυθεί το ρόλο του. Αυτό γίνεται όταν ανοίξουμε τη σκηνή-room…

… και σύρουμε το εικονίδιό του στη θέση που θέλουμε στην σκηνή.


Για να βεβαιωθούμε ότι όλα πάνε καλά μέχρι εδώ, «τρέχουμε» το πρόγραμμα…

οπότε εμφανίζεται αυτό που θα δει ο χρήστης…

… πατώντας στο κόκκινο βελάκι εμφανίζεται ένα μήνυμα, γιατί προφανώς δεν έχουμε φτιάξει την επόμενη σκηνή στην οποία το προγραμματίσαμε να πάει.


Ας κατασκευάσουμε την επόμενη σκηνή-room. Όμοια κατασκευάζουμε το σκηνικό-background «ΔΡΟΜΟΣ»…

με

προηγουμένως

και αφού δημιουργήσουμε την σκηνή-room «δρόμος» της βάζουμε ως σκηνικόbackground το «ΔΡΟΜΟΣ».


«Τρέχουμε» ξανά το πρόγραμμα…

…και περνάμε χωρίς πρόβλημα από την πρώτη στην δεύτερη σκηνή-room που δείχνει έναν ακίνητο δρόμο….

Για να δημιουργήσουμε την αίσθηση της κίνησης προγραμματίζουμε το σκηνικόbackground να κινείται με κατακόρυφη ταχύτητα (Vert Speed) 8.


Ας φτιάξουμε τώρα το αυτοκίνητό μας...

Θα χρειαστούμε μια έτοιμη μορφή-sprite, που θα την εισάγουμε…

… και θα την ονομάσουμε «κίτρινο».


Αφού έχουμε έτοιμη τη μορφή-sprite του αυτοκινήτου μας δημιουργούμε τον ηθοποιό-object που θα υποδυθεί τον ρόλο του αυτοκινήτου μας.

… τον οποίο προγραμματίζουμε όταν συμβεί (Event) να πατηθεί (Key Press) το πλήκτρο με το αριστερό βελάκι που είναι στο πληκτρολόγιο…

…να δράσει (Action) κινούμενος αριστερά με ταχύτητα 3. Ανάλογα γίνεται ο προγραμματισμός για την κίνηση προς τα δεξιά όταν πατηθεί το δεξιό βελάκι στο πληκτρολόγιο.


Το επόμενο βήμα είναι να βάλουμε τον ηθοποιό-object «το δικό μου» να παίξει το ρόλο του στη σκηνή-room «δρόμος».

Αυτό γίνεται με απλό κλικ πάνω στη σκηνή, στο σωστό σημείο.

«Τρέχοντας» το πρόγραμμα διαπιστώνουμε ότι αφού έχουμε πατήσει το αριστερό βελάκι και το αφήνουμε, το όχημά μας συνεχίζει να κινείται αριστερά.


Διορθώνουμε το πρόβλημα συμπληρώνοντας στον προγραμματισμό του αυτοκινήτου μας τι πρέπει να γίνεται όταν σταματήσει να πατιέται το αριστερό βελάκι του πληκτρολογίου.

Ανάλογα προγραμματίζεται να σταματά και η κίνηση προς τα δεξιά.


Σειρά έχουν να δημιουργηθούν και τα άλλα οχήματα που κυκλοφορούν (μόνα τους) στο δρόμο. Θα φτιαχτούν δύο, ένα μπλε που θα κινείται, με ταχύτητα 15, προς τα πάνω (στην ίδια κατεύθυνση με το δικό μας όχημα) και ένα άλλο κόκκινο που θα κινείται, με ταχύτητα 25, προς τα κάτω (στην αντίθετη κατεύθυνση με το δικό μας όχημα).


Τα οχήματα τοποθετούνται στη σκηνή-room:


«Τρέχουμε» το πρόγραμμα και διαπιστώνουμε ότι τα οχήματα κινούνται όπως τα έχουμε προγραμματίσει και φτάνοντας στο τέλος του δρόμου εξαφανίζονται (γιατί συνεχίζουν να κινούνται).

Θα τα προγραμματίσουμε όταν φτάνουν στο τέλος του δρόμου (Outside room) να παίρνουν θέση (αλλαγή συντεταγμένων) στην αρχή του δρόμου


Το τελευταίο που θα δούμε πως μπορούν να προγραμματιστούν δύο ρόλοι ώστε να αλληλεπιδρούν επί σκηνής. Τι θα συμβεί α) αν το ανερχόμενο μπλε όχημα συναντήσει το δικό μας όχημα που του κλείνει τον δρόμο και β) αν το δικό μας όχημα περάσει στο αντίθετο ρεύμα κυκλοφορίας και συγκρουστεί με το κατερχόμενο κόκκινο όχημα; (το β θα αφεθεί ως άσκηση στους μαθητές). Θα προγραμματίσουμε το «ανερχόμενο» όχημα-object-ηθοποιό όταν συγκρουστεί (Colision) με «το δικό μου» όχημα-object-ηθοποιό:

Το «ανερχόμενο» όχημα όταν συναντά «το δικό μου» όχημα να υποχωρεί κατακόρυφα κατά 35 μονάδες σχετικά (Relative) από τη θέση στην οποία βρίσκεται.


Ατομική δραστηριότητα για το σπίτι Προθεσμία παράδοσης: 1 εβδομάδα (μέχρι το μεθεπόμενο μάθημα). Η παράδοση μπορεί να γίνει είτε στην τάξη (σε CD ή flash memory) είτε μέσω email στον καθηγητή (n.mpegetis@di.uoa.gr) εντός της προθεσμίας.

Χρησιμοποιήστε το παραπάνω σχέδιο παιχνιδιού που μόλις φτιάξαμε στην τάξη και επεκτείνετέ το χρησιμοποιώντας τη φαντασία σας. Θα αξιολογηθεί η πρωτοποριακή ιδέα του καθενός και ο βαθμός στον οποίο προβλέψατε τυχόν λάθη στο παιχνίδι σας. Ένα τέτοιο λάθος για παράδειγμα είναι αυτό που αναφέραμε στη τάξη με το σταμάτημα της κίνησης προς μία κατεύθυνση όταν αφεθεί το πλήκτρο κίνησης. Κάποιες ιδέες για την επέκταση που καλείστε να κάνετε είναι οι εξής:    

  

Να βάλετε αντικείμενα (π.χ. φρούτα) στο δρόμο που θα σας προσδίδουν πόντους ή και χρόνο όσο τα συλλέγετε. Να βάλετε «ζωές» στον παίκτη που κινεί το αυτοκίνητο. Να βάλετε εμπόδια-βόμβες, τα οποία όταν τα ακουμπήσει το όχημά σας θα χάνει μία «ζωή» Να βάλετε λάδια στο δρόμο, που θα κάνουν το όχημα να μην είναι σταθερό και για κάποια μέτρα να «τρέμει» και έτσι να μπορεί να ακουμπήσει σε περισσότερα εμπόδια. Να βάλετε αντιπάλους οι οποίοι θα τρέχουν με μία σταθερή ταχύτητα με τη ίδια φορά όπως εσείς. Να μπορείτε να αυξομειώσετε την ταχύτητα του οχήματός σας και να κινείστε και πάνω-κάτω μέσα στο σκηνικό και όχι μόνο δεξιά-αριστερά. Να προσθέσετε ένα χρονόμετρο ή/και ένα μετρητή πόντων και να κρατάτε τους συνολικούς 5 καλύτερους χρόνους και 5 καλύτερες βαθμολογίες σε πόντους στο τέλος κάθε παιχνιδιού.


ergastirio_fullo_drastiriotitas