Πώς να φτιάξουμε το δικό μας παιχνίδι με το Scratch
Ο προγραμματισμός απαιτεί καταρχάς τη γνώση και τη κατανόηση της έννοιας του αλγορίθμου.
Τι είναι αλγόριθμος
Στον προγραμματισμό, για να δημιουργήσουμε ένα παιχνίδι για παράδειγμα, θα χρειαστεί να επιλύσουμε προβλήματα όπως τα παρακάτω:
- Τι αντικείμενα θα χρησιμοποιήσουμε;
- Πώς θα συμπεριφέρονται;
- Πώς θα αλληλεπιδρούν μεταξύ τους;
- Πώς θα τα ελέγχουμε;
Πρέπει να έχουμε υπ’ όψιν μας ότι ο υπολογιστής δεν μπορεί να κάνει τίποτα μόνος του, απλώς ακολουθεί τις οδηγίες. Αν δεν του δώσουμε σαφείς, ακριβείς και κατανοητές από αυτόν εντολές, δεν πρόκειται να ενεργήσει σωστά.
Ο αλγόριθμος του παιχνιδιού μας
Με αυτές τις οδηγίες, θα υλοποιήσουμε ένα απλό παιχνίδι αγώνων με αυτοκίνητα για 2 παίκτες, για να εξηγήσουμε τις βασικές εντολές του Scratch.
Στο παιχνίδι αυτό θέλουμε να υπάρχουν δύο οχήματα, που θα τα χειρίζονται δύο παίκτες, ο ένας με τα βελάκια του πληκτρολογίου και ο άλλος με τα πλήκτρα WASD.
Νικητής θα είναι αυτός που θα φτάσει πρώτος στον τερματισμό.
Είναι σημαντικό τα αυτοκίνητα να μην μπορούν να βγουν έξω από την πίστα.
Προετοιμασία
- Αφού συνδεθούμε στο Scratch με το λογαριασμό μας, κάνουμε κλικ στο κουμπί “Δημιουργία”.
- Τώρα, μπορούμε να δώσουμε ένα όνομα στο παιχνίδι μας, όπως “Simple Racing” ή “Αγώνες με αυτοκίνητα”. Υπενθυμίζουμε ότι το γράφουμε στο πλαίσιο πάνω από το σκηνικό.
- Επίσης διαγράφουμε την γάτα, δεν θα μας χρειαστεί. Κάνουμε δεξί κλικ πάνω της και επιλέγουμε “Διαγραφή”.
Συμβουλή: μπορούμε να την διαγράψουμε είτε από το σκηνικό είτε από τη λίστα των αντικειμένων.
Ορίζουμε το φόντο
- Έπειτα, πρέπει να σχεδιάσουμε μία εικόνα για υπόβαθρο. Στην περιοχή δίπλα στα αντικείμενα, κάνουμε κλικ στο κουμπί με το πινέλο, κάτω από το “Νέο υπόβαθρο”.
Ένα καινούριο λευκό υπόβαθρο θα δημιουργηθεί, και θα εμφανιστούν εργαλεία ζωγραφικής. Εδώ μπορούμε να σχεδιάσουμε την πίστα.
Αν θέλετε, μπορείτε να αντιγράψετε έτοιμη την πίστα από εδώ.
Κάνουμε δεξί κλικ στην παραπάνω εικόνα > Αποθήκευση εικόνας ως… και μετά επιλέγουμε το τρίτο κουμπί κάτω από το “Νέο υπόβαθρο”.
Εντοπίζουμε την εικόνα που μόλις αποθηκεύσαμε και πατάμε “Άνοιγμα”. Η εικόνα θα εμφανιστεί ως φόντο - Δημιουργούμε τα αυτοκίνητα
- Στη συνέχεια, θα προσθέσουμε τα αυτοκίνητα. Μπορούμε να βρούμε δικές μας εικόνες, να χρησιμοποιήσουμε τις παρακάτω ή να σχεδιάσουμε τα δικά μας.
Για να χρησιμοποιήσουμε αυτές, τις αποθηκεύουμε, και τις ανεβάζουμε στο Scratch με το σχετικό κουμπί, δίπλα στο “Νέο αντικείμενο”:
Οι συγκεκριμένες εικόνες είναι πολύ μεγάλες, οπότε θα χρειαστεί να τις μικρύνουμε. Πατάμε το κουμπί “Σμίκρυνση” από το μενού επάνω…
…και μετά το ξαναπατάμε αρκετές φορές στα αυτοκίνητα, έως ότου πάρουν το επιθυμητό μέγεθος.
Στη λίστα των αντικειμένων, εμφανίζεται ένα εικονίδιο “i” στο επιλεγμένο αντικείμενο. Πατώντας το, έχουμε τη δυνατότητα να αλλάξουμε κάποιες παραμέτρους, όπως το όνομα, την κατεύθυνση και άλλα.
- Για να στρίψουμε τα αυτοκίνητα, γυρίζουμε τον μοχλό προς τα πάνω, στις 0 μοίρες.
- Τα μετακινούμε κρατώντας και σέρνοντας το ποντίκι στη γραμμή εκκίνησης:
Κίνηση
Φτάσαμε στο σημείο όπου πρέπει να προγραμματίσουμε τι θέλουμε να κάνει το κάθε αντικείμενο, και πώς θα το χειριζόμαστε.
Ξεκινάμε από τα απλά: όταν πατάμε το πλήκτρο w θέλουμε το κίτρινο αυτοκίνητο να προχωρά μπροστά. Με το s θα πηγαίνει πίσω, ενώ με τα a και d θέλουμε να στρίβει.
Αντίστοιχα και για το πορτοκαλί, αλλά με τα βελάκια.
Στην καρτέλα “Σενάρια” φαίνονται τα σενάρια του αντικειμένου που έχουμε επιλεγμένο. Οπότε σιγουρευόμαστε πως το κίτρινο είναι επιλεγμένο και ξεκινάμε να το προγραμματίσουμε.
- Από την ομάδα εντολών “Κινήσεις”, “τραβάμε” και αποθέτουμε (drag & drop) δεξιά, την εντολή “κινήσου 10 βήματα”:
Αν κάνουμε κλικ πάνω της, βλέπουμε ότι το κίτρινο αυτοκίνητο μετακινήθηκε. Αλλάζοντας το νούμερο 10, έχουμε διαφορετικά αποτελέσματα.
- Αφού πειραματιστούμε λίγο με αυτή την εντολή, παίρνουμε το κίτρινο block “εάν … τότε” από την ομάδα “Έλεγχος” και το τοποθετούμε γύρω από το άλλο, κάπως έτσι:
- Και μέσα στην υποδοχή σε σχήμα ρόμβου, βάζουμε άλλο ένα block, το “πατήθηκε το πλήκτρο …” από την ομάδα “Αισθητήρες”. Το αποτέλεσμα πρέπει να είναι αυτό:
- Από τη λίστα (πατάμε το βελάκι δίπλα στο space), διαλέγουμε το w.
Το σενάριο μέχρι τώρα κάνει τα εξής:
- ελέγχει αν το πλήκτρο w είναι πατημένο,
- εάν είναι, μετακινεί το αυτοκίνητο 10 βήματα μπροστά
- αν δεν πατήθηκε, δεν κάνει τίποτα.
Στην πραγματικότητα όμως, θέλουμε να ελέγχει συνεχώς, σε όλη τη διάρκεια του παιχνιδιού για την κατάσταση του πλήκτρου w.
Άρα, τοποθετούμε το block “για πάντα” από την ομάδα “Έλεγχος”, γύρω από τα υπόλοιπα:
- Τώρα, κάνοντας κλικ κάπου πάνω στο σενάριό μας, θα εκτελεστεί, και αν πατήσουμε το w, το αυτοκίνητο θα τρέξει. Μπορούμε να μειώσουμε την ταχύτητα, μεταβάλλοντας τον αριθμό των βημάτων, από 10 σε 3 για παράδειγμα.
- Σταματάμε το σενάριο με το κόκκινο κουμπί “STOP”.
- Θα ορίσουμε αυτές οι ενέργειες να ξεκινήσουν να εκτελούνται όταν πατήσουμε το πράσινο σημαιάκι εκκίνησης. Για να το κάνουμε αυτό, παίρνουμε την εντολή “Όταν στο σημαιάκι γίνει κλικ” από την ομάδα “Συμβάντα” και την τοποθετούμε έτσι ώστε να “κουμπώσει” πάνω από όλα τα άλλα.
Σημείωση: θα μπορούσαμε να χρησιμοποιήσουμε μόνο το “Όταν το πλήκτρο … πατηθεί” αλλά αυτό δεν λειτουργεί όπως θα έπρεπε στην περίπτωσή μας.
- Συνεχίζουμε για την όπισθεν. Αρκεί στο πρώτο (καφέ) block να κάνουμε δεξί κλικ > διπλασιασμός για να αντιγράψουμε το σενάριο.
Το μόνο που αλλάζει είναι το πλήκτρο, που το αλλάζουμε σε s, και τα βήματα που τα αλλάζουμε σε -3. - Επαναλαμβάνουμε τη διαδικασία για να υλοποιήσουμε τις στροφές. Πάλι αντιγράφουμε ένα σενάριο, και επιλέγουμε το a για αριστερά και το d για δεξιά. Αντί για το “κινήσου … βήματα” βάζουμε το block “στρίψε δεξιά … μοίρες” για να στρίψει δεξιά, και το “στρίψε αριστερά … μοίρες” για να στρίψει αριστερά.
Συμβουλή: αφαιρούμε μία εντολή μετακινώντας την στο αριστερό μέρος, δηλαδή στην παλέτα εντολών.
- Τα σενάρια θα πρέπει να είναι τελικά, κάπως έτσι:
Αποτροπή επαφής με το πράσινο
Τώρα, πρέπει να προγραμματίσουμε το αυτοκίνητο να μην μπορεί να προχωρήσει εάν ακουμπάει στα όρια του δρόμου. Στην ουσία, θέλουμε το παιχνίδι να κάνει ακόμα έναν έλεγχο κάθε φορά, αν το αυτοκίνητο αγγίζει ή όχι το πράσινο χρώμα. Αν δεν το ακουμπάει, τότε μπορεί να προχωρήσει.
- Για να το κάνουμε αυτό, θα χρησιμοποιήσουμε ένα ακόμα block “εάν … τότε” από την ομάδα “Έλεγχος” το οποίο το μεταφέρουμε μέσα στο προηγούμενο “εάν” και γύρω από την μπλε εντολή “κινήσου”.
- Θα χρησιμοποιήσουμε επίσης τον τελεστή “δεν ισχύει ότι …” από την ομάδα “Τελεστές”. Τον σέρνουμε μέσα στην υποδοχή του “εάν”.
- Και μέσα στην υποδοχή του “δεν ισχύει ότι …” βάζουμε το block “αγγίζει το χρώμα …” της ομάδας “Αισθητήρες”. Για να επιλέξουμε το επιθυμητό χρώμα (το πράσινο) κάνουμε κλικ πρώτα στο τετραγωνάκι δίπλα, και μετά στο πράσινο της πίστας.
Αυτή η συνθήκη θα επιτρέψει στο αυτοκίνητο να προχωρήσει μόνο αν βρίσκεται μέσα στα όρια του δρόμου.
- Σε αυτό το σημείο θα αντιγράψουμε τα σενάρια και στο άλλο αντικείμενο. Μετακινούμε το πρώτο block από κάθε σενάριο μέχρι το εικονίδιο του άλλου αυτοκινήτου στη λίστα αντικειμένων. Και αρκεί να αλλάξουμε τα πλήκτρα κατάλληλα για να μπορούμε να παίξουμε με άλλο ένα άτομο.
Τερματισμός
- Για τον τερματισμό, το πιο απλό που μπορούμε να κάνουμε είναι να πει κάτι (μέσα σε σύννεφο) το αυτοκίνητο που τερματίζει. Φτιάχνουμε ένα τέτοιο σενάριο σε κάθε όχημα:
(η μωβ εντολή βρίσκεται στην ομάδα “Όψεις”)
Έτσι, όταν αγγίζει την κόκκινη γραμμή τερματισμού, θα βγάζει αυτό το μήνυμα.
Απλώς πρέπει να προνοήσουμε να ξεκινήσουμε τον αγώνα με τα αυτοκίνητα αμέσως μετά την γραμμή.
Ιδέες για εμπλουτισμό
Όπως είδαμε στο παραπάνω παράδειγμα, ο προγραμματισμός για αρχάριους γίνεται ιδιαίτερα εύκολος χάρη στο απλό και εύχρηστο περιβάλλον του Scratch.
Το παιχνίδι βέβαια είναι πολύ απλό και σηκώνει πολλές βελτιώσεις, αλλά κάποιες από αυτές είναι αρκετά δύσκολες. Οπότε μην απογοητευτείτε αν δεν τα καταφέρετε!
- Αυξομείωση ταχύτητας με δυο άλλα πλήκτρα.
- Χρονόμετρο για να μετράει τους γύρους
- Μόλις τερματίσει κάποιος, να σταματάει και να επαναφέρει το παιχνίδι
- Περισσότερες πίστες
- Εμπόδια στο δρόμο
- Ήχοι
- και ότι άλλο σκεφτείτε!