Κεφάλαιο 16

= =

16. Δημιουργώντας ένα ολοκληρωμένο παιχνίδι (Χ)

include component="comments" page="Κεφάλαιο 16" limit="10"

__**Ομάδα Διαδικτυακών πόρων**__
===**Προτεινόμενοι σύνδεσμοι :**===

1. [|http://users.att.sch.gr/vapapado/scratch/E2 sxediazw me to scratch/d1_index.htm] Σε αυτόν το σύνδεσμο υπάρχει ενδεικτικό σενάριο για το πώς κατασκευάζω ένα παιχνίδι με δραστηριότητες και φύλλο εργασίας.

2.[] Περιγραφή step by step του Racing game στο Scratch. Αναφέρει ου μπορούμε να βρούμε αυτό το παιχνίδι και στη συνέχεια περιγράφει κάθε σημείο του κώδικα και τη λειτουργικότητα του.

3.[] Eνδιαφέρον φύλλο εργασίας με ερωτήσεις για το πώς κατασκευάζω ένα παιχνίδι.

4.[] Ενα πολύ ενδιαφέρον site το οποίο περιέχει αποκλειστικά παιχνίδια στο Scratch (Aναλυτικότερη περιγραφή για τα παιχνίδια που περιέχει στη σελίδα των συνδέσμων.

6.[] Ένα βίντεο που μας δείχνει πως μπορεί να κατασkευαστεί ένα απλό Pong game (προσπάθεια να πετυχαίνουμε μια μπάλα συνεχώς μέσω ενός sprite, ώστε να μη μας πέφτει κάτω), βήμα-βήμα στο Scratch.

7.@http://dia-installer.de/index_en.html Δωρεάν λογισμικό για δημιουργία εννοιολογικών χαρτών και γράφων, σε περίπτωση που θέλετε να τους χρησιμοποιήσετε για περιγραφή των αλγορίθμων.

=Blogs=

//__16. Δημιουργώντας ένα ολοκληρωμένο παιχνίδι (__// __Penalty Shootout__ __)__ // Μαθησιακοί στόχοι //

Να κατανοούν τη χρησιμότητα καθεμιάς από τις παλέτες του scratch. Να είναι σε θέση να προγραμματίσουν το δικό τους παιχνίδι. Να επιλέγουν τις σωστές εντολές για να επιτύχουν το στόχο/πρόγραμμα. Να αναλύουν σενάρια χρήσης όλων των εντολών που διδάχθηκαν στο scratch. Χαρακτηριστικά Ο μαθητής έχει πλέον διδαχθεί όλες τις δυνατές εντολές του scratch, και τώρα καλείται να τις συνθέσει όλες μαζί αποδοτικά για να παράγει το δικό του πρόγραμμα. Παραδείγματα Η πλατφόρμα του παιχνιδιού αποτελείται από ένα σκηνικό που αναπαριστά το γρασίδι ενός ποδοσφαιρικού γηπέδου, 1 αντικείμενο που είναι το τέρμα, 1 αντικείμενο μπάλα και 2 ακόμα αντικείμενα-παίχτες: τον τερματοφύλακα και τον εκτελεστή του πέναλτι. Ο παίκτης χειρίζεται τον εκτελεστή του πέναλτι, πατώντας με το ποντίκι σε ένα σημείο προς το τέρμα προσδιορίζοντας έτσι την κατεύθυνση κίνησης της μπάλας που επιθυμεί. Το αντικείμενο τερματοφύλακας κινείται περιοδικά κατά μήκος του τέρματος με σταθερή ταχύτητα. Αν το αντικείμενο μπάλα χτυπήσει στο τέρμα αυξάνεται κατά 1 η τιμή της μεταβλητής που μετράει το πλήθος εύστοχων εκτελέσεων πέναλτυ, αλλιώς (αν δηλαδή χτυπήσει στο τερματοφύλακα ή βγει άουτ) αυξάνεται μόνο ο μετρητής συνολικών εκτελέσεων πέναλτι (εύστοχων και μη).

//**Quote :**//
Creativity is the power to connect the seemingly unconnected. ”

"H δημιουργικότητα είναι η δύναμη να συνδέεις τα φαινομενικά ασύνδετα."

William Plomer
 * (1903–1973)**


 * William Charles Franklyn Plomer** C.B.E. (he pronounced the surname as //ploomer//) (1903–1973) was a South African author, known as a novelist, poet and literary editor. He was educated mostly in the United Kingdom.

** 1. ****__ SUPER PONG 2 __**

__Περιγραφή παιχνιδιού :__ Το παιχνίδι Super Pong2 είναι μια επέκταση του κλασσικού παιχνιδιού Pong. Αρχικά υπάρχουν δύο μπάλες σε δύο σημεία στη κορυφή της οθόνης. Πατώντας την πράσινη σημαία, οι δύο μπάλες αρχίζουν να κινούνται. Από τη μεριά του, ο παίκτης του παιχνιδιού χειρίζεται μια οριζόντια κοινή ρακέτα και για τις δύο μπάλες μέσω του δείκτη του ποντικιού, κουνώντας την αριστερά- δεξιά για να αποκρούσει τις μπάλες, ώστε να μην πέσει καμία απ΄ τις δύο στο κάτω στρώμα της σκηνής. Στη περίπτωση που μία από τις δύο μπάλες πέσει στο έδαφος, το παιχνίδι τελειώνει και η συγκεκριμένη μπάλα λέει « Τέλος παιχνιδιού».

__Ποια αντικείμενα θα χρειαστούμε για να δημιουργήσουμε αυτό το παιχνίδι;__ Πριν προχωρήσουμε στην αναλυτική ανάλυση κατασκευής του παιχνιδιού μας, θα ήταν καλό να δούμε ποια είναι τα βασικά συστατικά του. Ας κάνουμε μερικές ερωτήσεις για να ανακαλύψουμε μερικά από αυτά. · Ποιοι είναι οι βασικοί πρωταγωνιστές του παιχνιδιού μας- (τα αντικείμενα που πρέπει να δημιουργήσουμε); 1. Αρχικά την πρώτη μπάλα του παιχνιδιού μας, η ονομασία της οποίας θα είναι «Μπάλα1». 2. Επίσης, την δεύτερη μπάλα του παιχνιδιού μας με ονομασία «Μπάλα2». 3. Το αντικείμενο με το οποίο θα αποκρούουμε τις μπάλες μας, η ονομασία του οποίου θα είναι «paddle» 4. Μήπως έχουμε τελειώσει; Χρειαζόμαστε κάτι ακόμα; Για σκεφτείτε…. Πότε τερματίζει το παιχνίδι μας; Μα φυσικά, όταν δεν αποκρούσουμε μια από τις δύο μπάλες και πέσει στο έδαφος. Μήπως, χρειαζόμαστε, να δημιουργήσουμε ένα στρώμα στο κάτω μέρος της σκηνής μας, το οποίο όταν θα ακουμπάν οι δύο μπάλες το παιχνίδι μας θα τερματίζεται; Μέσω της ζωγραφικής, λοιπόν, όπως φαίνεται και στην παραπάνω εικόνα ζωγραφίζουμε μια κόκκινη γραμμή στο σκηνικό για το λόγο που αναφέραμε παραπάνω.

//Ας δούμε τώρα, μερικές από τις λειτουργίες που πρέπει να επιτελούν τα παραπάνω αντικείμενα, καθώς και κάποιες συνέργιες που χρειάζονται μεταξύ αυτών των αντικειμένων://

· Οι δύο μπάλες μας, θέλουμε να κινούνται συνεχώς, πώς το πετυχαίνουμε αυτό; (Με εντολές επανάληψης σε συνδυασμό με εντολές κίνησης) · Οι δύο μπάλες πρέπει να αναπηδούν όταν ακουμπάν άλλα αντικείμενα (paddle- κόκκινη γραμμή). Πώς μπορούμε να το δημιουργήσουμε αυτό; (Με εντολές αισθητήρων) · Όταν μία μπάλα ακουμπήσει τη ρακέτα (paddle) θέλουμε να συνεχίσει να κινείται προς την αντίθετη κατεύθυνση, τι πρέπει να κάνουμε; ( Με εντολή αλλαγής κατεύθυνσης σε συνδυασμό με μια αριθμητική έκφραση για να προσδιορίσουμε την αντίθετη κατεύθυνση) · Πώς πετυχαίνουμε η κίνηση των μπαλών να μην είναι καθορισμένη κάθε φορά; (Με εντολή τυχαίας επιλογής)
 * __Μπάλα1,2__**


 * __PADDLE__**
 * Τι θέλουμε να κάνει το «paddle»; Να κινείται συνεχώς αριστερά-δεξιά, κατά μήκος της σκηνής, σύμφωνα με το δείκτη του ποντικιού μας, έτσι ώστε να αποκρούει τις μπάλες.
 * Με ποια αντικείμενα χρειάζεται να έχει συνέργιες το «paddle»; Το «paddle» αποκρούει τις μπάλες, άρα όταν οι μπάλες ακουμπάν το «paddle», έχουμε συνέργια μεταξύ των μπαλών και του «paddle», όπως αναφέραμε και παραπάνω.


 * __ΚΟΚΚΙΝΗ ΓΡΑΜΜΗ ΣΤΟ ΚΑΤΩ ΜΕΡΟΣ ΤΗΣ ΣΚΗΝΗΣ__**
 * Με ποια αντικείμενα πρέπει να επικοινωνεί αυτή η γραμμή; Μα, φυσικά, με τις μπάλες μας, αφού όταν αυτές ακουμπήσουν αυτή τη κόκκινη γραμμή (δηλαδή δεν αποκρουστούν από το «paddle»), το παιχνίδι μας πρέπει να τερματίζεται

//__Τι άλλο επιπλέον θα μπορούσαμε να προσθέσουμε στο παιχνίδι μας;__//

· Πώς μπορούμε να μετρήσουμε τις αποκρούσεις του κάθε παίχτη; ( Μέσω της δημιουργίας μιας μεταβλητής- μετρητή)


 * __ΣΚΗΝΙΚΟ__**


 * __**ΥΠΟΒΑΘΡΑ**__: Το πρώτο πράγμα που πρέπει να κάνουμε για την δημιουργία του παιχνιδιού είναι η δημιουργία του σκηνικού. Τι θα μπορούσαμε να κάνουμε για να κάνουμε την σκηνή μας πιο όμορφη; Ίσως να προσθέσουμε μια εικόνα ως background. Πηγαίνοντας, λοιπόν, στο σκηνικό, επιλέγουμε την επιλογή «Υπόβαθρα» και στην συνέχεια την επιλογή «Εισαγωγή», για την εισαγωγή μιας εικόνας στο σκηνικό, από τις ήδη υπάρχουσες. Από αυτές επιλέγουμε την εικόνα « lake», από τον φάκελο «Nature».

Το σκηνικό μας δεν θέλουμε να επιτελεί κάποια επιπλέον λειτουργία, γι’ αυτό δεν έχουμε κάποιο σενάριο γι' αυτό. Άρα προχωράμε στα υπόλοιπα αντικείμενα μας.

//**ΑΝΤΙΚΕΙΜΕΝO "ΜΠΑΛΑ1"**// __ΕΝΔΥΜΑΣΙΕΣ__: Ποιοι είναι οι πρωταγωνιστές του παιχνιδιού μας; Αρχικά χρειαζόμαστε δύο μπάλες. Προσθέτουμε, λοιπόν, δύο νέες μορφές από το αρχείο. Η πρώτη είναι η «tennisball» από το φάκελο «things». Ονομάζουμε αυτό το αντικείμενο «Μπάλα1», και από την επιλογή «Ενδυμασίες», πηγαίνοντας σε αυτό το αντικείμενο, μέσω της επιλογής «Διόρθωσε» μικραίνουμε το αντικείμενο σε μέγεθος (45*45).


 * //ΤO ΣΕΝΑΡΙO://**

__ΣΥΝΔΥΑΣΜΟΣ ΚΙΝΗΣΗΣ - ΕΠΑΝΑΛΗΨΗΣ__ Αρχικά, πώς ξεκινάει το παιχνίδι μας; Πατώντας το πράσινο σημαιάκι, άρα χρησιμοποιούμε την εντολή «**όταν στο (σημαιάκι) γίνει κλικ».** Στη συνέχεια θέλουμε οι μπάλες μας στην αρχική κατάσταση να κοιτάνε προς το «paddle», άρα χρησιμοποιούμε την εντολή **«δείξε στο** **paddle».** Όπως είπαμε και παραπάνω, τι θέλουμε να κάνουν οι δύο μπάλες; Να κινούνται **__συνεχώς__** και να αναπηδούν όταν αγγίζουν το paddle είτε τον τοίχο του σκηνικού μας**.** Πώς δημιουργούμε το **__συνεχώς__** ; Μέσω της επαναληπτικής εντολής **« για πάντα(….)».** Τι πρέπει να περιέχεται στο **για πάντα(…);** Φυσικά, οι εντολές κίνησης των μπαλών. Τι γίνεται, όμως, αν οι μπάλες μας φτάσουν στα άκρα της σκηνής; Θέλουμε να στραφούν προς την αντίθετη κατεύθυνση ( να κάνουν στροφή (180 μοιρών)- να αναπηδήσουν) και να συνεχίσουν τη κίνηση τους προς αυτή τη κατεύθυνση με μια εντολή κίνησης ανεξάρτητη από τη θέση του αντικειμένου; Θα μπορούσατε να γυρίσετε στο ΚΕΦΑΛΑΙΟ 5 και να βρείτε τον συνδυασμό των δύο εντολών που χρειαζόμαστε;


 * (Εάν στα όρια αναπήδησε**
 * Κινήσου 7 βήματα** )
 * ,** τις οποίες προσθέτουμε στην επανάληψη, δηλαδή



__ΣΥΝΔΥΑΣΜΟΣ ΕΝΤΟΛΩΝ ΕΛΕΓΧΟΥ –ΟΨΗΣ - ΚΙΝΗΣΗΣ- ΑΙΣΘΗΤΗΡΩΝ__ Σε αυτό το τμήμα του κώδικα θα περιγράψουμε την αρχική τοποθέτηση των αντικειμένων «Μπάλα1», «Μπάλα2», καθώς και την συνθήκη τερματισμού του παιχνιδιού μας. Αρχικά, το παιχνίδι μας αρχίζει ξανά με τη εντολή «**όταν στο (σημαιάκι) γίνει κλικ»,** σε συνδυασμό με την εντολή **«Εμφάνισε»,** για να εμφανιστούν οι μπάλες μας. Όπως είπαμε και παραπάνω, αρχικά οι μπάλες μας τοποθετούνται σε κάποιο σημείο στην κορυφή της οθόνης. Πώς το πετυχαίνουμε αυτό; Θυμήσου το ΚΕΦΑΛΑΙΟ 5. Χρησιμοποιούμε,λοιπόν, την εντολή **«πήγαινε στο χ :14** **y:150»,** για τις «Μπάλα1», «Μπάλα2». Ποιό σημείο, όμως είναι αυτο; Μήπως είναι ένα σημείο στο άνω όριο της σκηνής; Και τί γίνεται όταν οι μπάλες μας αγγίζουν τα όρια της σκηνής; Αναπηδούν και αρχίζουν τη κίνηση τους, όπως είπαμε παραπάνω; Μήπως, λοιπόν, τοποθετώντας τη μπάλα μας, αρχικά, στο πάνω όριο της σκηνής βρήκαμε έναν έξυπνο τρόπο να αρχίσουμε την κίνηση των μπαλών κατά την εκκίνηση του παιχνιδιού; Για σκεφτείται (ή δοκιμάστε) αν τοποθετούσαμε, αρχικά, τις μπάλες σε ένα σημείο στην μέση της σκηνής μας, οι μπάλες θα άρχιζαν να κινούνται κατά την εκκίνηση του παιχνιδιού ή θα έμεναν στάσιμες σε αυτό το σημείο; Πότε τελειώνει το παιχνίδι μας; Μόνο **__όταν__** οι μπάλες μας __**αγγίξουν**__ τη κάτω κόκκινη γραμμή της σκηνής. Μήπως ξέροντας και αυτά που έχουμε πει στο ΚΕΦΑΛΑΙΟ 9, έχετε βρει τις εντολές που χρειαζόμαστε; Η λέξη **__όταν__** (προσδιορίζει εντολή ελέγχου) και η λέξη **__αγγίξουν__** (προσδιορίζει εντολή αισθητήρων). Άρα χρειαζόμαστε έναν συνδυασμό εντολής ελέγχου με μία εντολή αισθητήρων. Αυτός ο συνδυασμός είναι ο εξής:
 * Περίμενε ώσπου (αγγίζει το χρώμα __κόκκινο__;)**

Τι γίνεται όταν μια μπάλα βγαίνει εκτός παιχνιδιού και τελειώνει το παιχνίδι μας ; Η συγκεκριμένη μπάλα λέει «Tέλος παιχνιδιού» με την εντολή όψης: Και στη συνέχεια εξαφανίζεται μέσω της εντολής όψης: Τέλος, μετά από αυτά τερματίζουμε το παιχνίδι μας, μέσω της εντολής:
 * Πες** __**Τέλος παιχνιδιού**__ **για __0,3__ δευτερόλεπτα**
 * Απόκρυψη**
 * Σταμάτησε τα όλα**

Συνολικά το συγκεκριμένο τμήμα του κώδικα είναι το εξής: Τι άλλο θα μπορούσαμε να προσθέσουμε σε αυτό το τμήμα του κώδικα; Για σκεφτείτε, θα μπορούσατε, σύμφωνα και με αυτά που έχουμε πει στο ΚΕΦΑΛΑΙΟ 4, να ηχογραφήσετε την έκφραση «Τέλος παιχνιδιού» και να την προσθέσετε ως ήχο κατά τον τερματισμό του παιχνιδιού, όταν εμφανίζετε στην οθόνη η αντίστοιχη έκφραση; Σε ποιο σημείο του κώδικα της παραπάνω εικόνας πρέπει να προσθέσετε την εντολή που χρειάζεται για να ακουστεί ο ήχος που ηχογραφήσατε;

__ΣΥΝΔΥΑΣΜΟΣ ΗΧΟΥ– ΚΙΝΗΣΗΣ– ΜΕΤΑΒΛΗΤΩΝ- ΑΙΣΘΗΤΗΡΩΝ- ΑΡΙΘΜΗΤΙΚΩΝ ΕΚΦΡΑΣΕΩΝ__ Ξεκινάμε και αυτό το τμήμα του κώδικα με τον ίδιο τρόπο, όπως και παραπάνω, με την εντολή: «**όταν στο (σημαιάκι) γίνει κλικ».** Τώρα, πώς μπορούμε να μετράμε το σκόρ των αποκρούσεων του κάθε παίχτη σε κάθε παιχνίδι; Μέσω της δημιουργίας μιας μεταβλητής « **το σκόρ σου είναι»,** την οποία αρχικοποιούμε στην τιμή 0, με την εντολή και στη συνέχεια θα χρειαστεί να την αυξάνουμε κατά ένα σε κάθε απόκρουση (χρησιμοποίηση σαν μετρητή). Όπως γίνεται κατανοητό και από τα παραπάνω, **__κάθε φορά που__** οι μπάλες **__αγγίζουν__** το paddle (αποκρούονται οι μπάλες), γίνονται μια σειρά από ενέργειες όπως: αύξηση του μετρητή (του σκόρ) κατά ένα, άκουσμα ενός χαρακτηριστικού ήχου, αλλαγή της κατεύθυνσης των μπαλών στην αντίθετη κατεύθυνση, τυχαία κίνηση των μπαλών από ‘κει και πέρα. Ο συνδυασμός των λέξεων **__κάθε φορά που__** (προσδιορίζει την εντολή __για πάντα εάν)__ και η λέξη **__αγγίζουν__** (προσδιορίζει την εντολή αισθητήρων). Άρα χρειαζόμαστε τον συνδυασμό των εντολών (__για πάντα εάν )__με μία εντολή αισθητήρων (__αγγίζει το__ __paddle;).__ Αυτήν η εντολή είναι η εξής:
 * «όρισε το** **__το σκορ σου είναι__ σε 0»**
 * «για πάντα εάν (αγγίζει το** **__paddle;)__(…..)»**

Μέσα σε αυτή την επαναληπτική δομή (όταν αποκρούονται οι μπάλες από το paddle), γίνονται τα εξής:

**«άλλαξε** **__your score is__** **κατά** **__1»__**
 * 1) Αύξηση της μεταβλητής __(το σκόρ σου είναι__) κατά ένα με την εντολή:

//2// . __Προσθήκη ήχου:__ Θα μπορούσα να δημιουργήσω ένα ήχο, έτσι ώστε να ακούγεται κάθε φορά που αποκρούεται μια μπάλα; Πηγαίνουμε, λοιπόν, στην ετικέτα //Ήχος//, των δύο αντικειμένων (Μπάλα1, Μπάλα2) και από την επιλογή //Εισαγωγή// επιλέγω τον ήχο **«****WaterDrop»** από τον φάκελο **Effects** και για τις δύο μπάλες. ΩΡΑΙΑ!!!!! Τώρα προσθέτοντας την εντολή **«παίξε ήχο (****WaterDrop)»**

μέσα στην επανάληψη, προσθέσαμε τον ήχο **WaterDrop** να ακούγεται κάθε φορά που αποκρούεται μια μπάλα.

3. __Αλλαγή κατεύθυνσης των μπαλών όταν αποκρούονται από το **«**__**__paddle»:__** Προς τα ποια κατεύθυνση θα πρέπει να κινηθούν οι μπάλες όταν αποκρουστούν; Ενώ προηγουμένως κινούνταν από πάνω προς τα κάτω, μετά την απόκρουση δεν θα πρέπει να συνεχίσουν να κινούνται πλέον από κάτω προς τα πάνω; Δηλαδή τι θέλουμε; Να συνεχίσουν να κινούνται οι μπάλες προς την **__αντίθετη__** κατεύθυνση από την κατεύθυνση που κινούνταν προηγουμένως. Πώς μπορούμε να προσδιορίσουμε την **__αντίθετη κατεύθυνση__** με μία μαθηματική έκφραση; Το **__αντίθετο__** σημαίνει **__(-180 μοίρες),__** από την **__προηγούμενη κατεύθυνση.__** Άρα χρειαζόμαστε την αριθμητική έκφραση: Με ποια εντολή πρέπει να συνδυαστεί η παραπάνω εντολή για να πετύχουμε **__αντίθετη κίνηση__** των μπαλών μετά την απόκρουση; Μα, φυσικά με μια εντολή κίνησης και συγκεκριμένα με την εντολή **«δείξε στην κατεύθυνση»**, αφού πλέον οι μπάλες **__αλλάζουν κατεύθυνση.__** Άρα, χρησιμοποιούμε τον συνδυασμό ο των δύο παραπάνω εντολών, ως εξής:
 * «180- κατεύθυνση»**
 * « δείξε στην κατεύθυνση (180- κατεύθυνση)»**

4. __Συνδυασμός κίνησης με τυχαία επιλογή:__ Θέλουμε, λοιπόν, μετά την εντολή αλλαγής κατεύθυνσης που χρησιμοποιήσαμε παραπάνω, να κινηθούν οι μπάλες για κάποια **__βήματα__** προς τα πάνω και στη συνέχεια να στρίψουν κάνοντας μια τυχαία επιλογή. Άρα, αρχικά θα χρησιμοποιήσουμε την παρακάτω εντολή κίνησης:
 * « κινήσου 7 βήματα».**

Έχουμε μάθει ότι έχουμε την επιλογή να επιλέξουμε τυχαία κάποιες τιμές στο Scratch (ΚΕΦΑΛΑΙΟ 15). Για σκεφτείτε, πώς θα μπορούσαμε να χρησιμοποιήσουμε αυτήν την επιλογή, ώστε να προσδώσουμε τυχαία κίνηση στις μπάλες του παιχνιδιού μας, μετά την απόκρουση τους από το «paddle»; Δηλαδή, μετά την απόκρουση και τη κίνηση για 7 βήματα, θέλουμε οι μπάλες να επιλέξουν **__τυχαία__** να κάνουν μια στροφή (δεξιόστροφη) από 20 μοίρες έως -20 μοίρες και να συνεχίσουν την κίνηση τους προς τα πάνω από αυτήν τη γωνία. Για να εξασφαλίσουμε την **__τυχαία__** στροφή έχουμε την εντολή **«τ**__υ__**χαία επιλογή από 20 μέχρι -20 μοίρες»,** και για την **__στροφή προς σχετική κατεύθυνση,__** όπως λέγαμε και στο ΚΕΦΑΛΑΙΟ 5, έχουμε την εντολή **«στρίψε (δεξιόστροφα)(….)».** Αυτό που θέλουμε, λοιπόν, είναι ο συνδυασμός των δύο παραπάνω εντολών:
 * __Επιπλέον προσθήκη__**
 * «στρίψε (δεξιά) (τυχαία επιλογή από 20 μέχρι -20 μοίρες)»**

Το συγκεκριμένο τμήμα του κώδικα είναι το εξής:

Ας, δούμε τώρα συγκεντρωτικά ποιό είναι το σενάριο της "Μπάλας1" που περιγράψαμε παραπάνω:

__ΣΕΝΑΡΙΟ "ΜΠΑΛΑ1"__

Εάν παρατηρήσετε προσεκτικά το παραπάνω σχήμα, θα διαπιστώσετε ότι στα σενάρια των αντικειμένων «Μπάλα1», «Μπάλα2», τα τρία τμήματα του κώδικα που περιέχονται ξεκινούν και τα τρία με την εντολή **«Όταν στο (σημαιάκι) γίνει κλίκ»**. Αλήθεια, χρειάζεται αυτή η εντολή να χρησιμοποιηθεί τρεις φορές ή μία φορά στην του σεναρίου θα ήταν αρκετή; Για δοκιμάστε το; Δουλεύει ο κώδικας σας, αν χρησιμοποιήσετε την παραπάνω εντολή μόνο στην αρχή; Όπως θα διαπιστώσετε ο κώδικας σας δεν δουλεύει, μπορείτε να σκεφτείτε γιατί; Η αιτία είναι απλή, αρκεί να σκεφτούμε μια από τις σημαντικότερες ιδιότητες του Scratch. Όπως ξέρουμε, ο κώδικας στο Scratch, εκτελείται ακολουθιακά. Όμως τα τρία τμήματα του σεναρίου των μπαλών που φαίνονται και στο παραπάνω διάγραμμα θέλουμε να εκτελούνται παράλληλα και όχι ακολουθιακά. Αν αυτά εκτελούνταν ακολουθιακά, οι μπάλες θα περίμεναν συνεχώς στο άνω όριο της οθόνης, αφού δεν θα είχε εκτελεστεί μέχρι τότε η συνδυασμός των εντολών εντολή **«εάν στα όρια αναπήδησε»- «κινήσου 7 βήματα».** Γι’ αυτό το λόγο χρειάζεται να χρησιμοποιήσουμε να χρησιμοποιήσουμε τρεις φορές ην εντολή **«όταν στο σημαιάκι γίνει κλικ»,** έτσι ώστε όταν αρχίζει το παιχνίδι μας να αρχίζει η εκτέλεση και των τριών αντίστοιχων τμημάτων του κώδικα ταυτόχρονα.

Τώρα, μήπως ήρθε η ώρα να βάλουμε στο παιχνίδι και το δεύτερο αντικείμενο του παιχνιδιού μας ("Μπαλα2');


 * ΑΝΤΙΚΕΙΜΕΝΟ "ΜΠΑΛΑ2"**

__ΕΝΔΥΜΑΣΙΕΣ__: Σαν δεύτερη μπάλα, επιλέγουμε την «baseball1» από το φάκελο «things». Ονομάζουμε αυτό το αντικείμενο «Μπάλα 2», και από την επιλογή «Ενδυμασίες», πηγαίνοντας σε αυτό το αντικείμενο, μέσω της επιλογής «Διόρθωσε» μικραίνουμε το αντικείμενο σε μέγεθος (45*45).

__ΣΕΝΑΡΙΟ__ Τί θέλουμε να κάνει η "Μπάλα2", μήπως ακριβώς τα ίδια πράγματα που κάνει η "Μπάλα1"; Άρα το σενάριο του αντικειμένου θα είναι ακριβώς το ίδιο με αυτό της "Μπάλας1". Για σκεφτείται, θα μπορούσαμε να διαφοροποιήσω κάπως το σενάριο της δεύτερης μπάλας; Ίσως αλλάζοντας λίγο τη κίνηση της δεύτερης μπάλας σε σχέση με τη κίνηση της πρώτης μπάλας. Επομένως, τί πολύ απλές αλλαγές θα μπορούσαμε να κάνουμε στις εντολές κίνησης του σεναρίου μας, για να το πετύχουμε αυτό; Ας δούμε, λοιπόν, συγκετρωτικά το σενάριο της "Μπάλας2".

__ΣΕΝΑΡΙΟ "ΜΠΑΛΑ2"__ Μήπως θα μπορούσατε να συγκρίνετε το παραπάνω σενάριο της "Μπάλας2", με το σενάριο της "Μπάλας1" και να παρατηρήσετε αν υπάρχουν κάποιες διαφορές μεταξύ τους. Για κοιτάξτε και συγκρίνετε πιο προσεκτικά της εντολές κίνησης στα δύο σενάρια.

//__ΕΝΔΥΜΑΣΙΕΣ:__// Για να δημιουργήσουμε τη ρακέτα μας, πηγαίνουμε στην επιλογή «Ζωγράφισε νέα μορφή» και ζωγραφίζουμε μία μαύρη ευθεία γραμμή. Το συγκεκριμένο αντικείμενο το ονομάζουμε «paddle».
 * //ΑΝΤΙΚΕΙΜΕΝΟ «//****//PADDLΕ»://**

Έχουμε πει ότι το "paddle" θέλουμε να το χρησιμοποιεί ο παίχτης του παιχνιδιού μας, έτσι ώστε κουνόντας το να αποκρούει τις μπάλες. Πώς θα μπορούσαμε να το πετύχουμε αυτό; Με τί είδους εντολές μπορούμε να δώσουμε στον παίχτη μας τη δυνατότητα να χειρίζεται αυτός το "paddle". Για θυμηθείται αντίστοιχα παιχνίδια που έχετε παίξει; Συνήθως, λοιπόν, στα περισσότερα παιχνίδια ο παίχτης χρησιμοποιεί είτε τα βελάκια του πληκτρολογίου του, είτε τον δείκτη του ποντικιού του για να μετακινήσει το αντικείμενο που πρέπει. Εμείς, θέλουμε ο παίχτης του παιχνιδιού μας να χειρίζεται το «paddle», μέσω του δείκτη του ποντικιού του. Δηλαδή, θέλουμε ο παίχτης να κινεί το «paddle», κουνώντας το ποντίκι αριστερά- δεξιά (σε **__οριζόντια__** κατεύθυνση) για να αποκρούσει τις μπάλες. Το **__οριζόντια κατεύθυνση__** προσδιορίζει την αλλαγή __**μόνο**__ της συντεταγμένης (χ) που καθορίζει τη θέση του "paddle" στη σκηνής μας. Αυτό το πετυχαίνουμε με την εντολή κίνησης Με τι θέλουμε να θέσουμε, όμως, το χ; Όπως είπαμε παραπάνω, ο παίχτης παίζει **κουνώντας το ποντίκι αριστερά- δεξιά (σε __οριζόντια__ κατεύθυνση),** άρα χρειαζόμαστε μια εντολή αισθητήρων που να προσδιορίζει την __οριζόντια κίνηση__ (κίνηση αριστερά-δεξιά) του δείκτη του ποντικιού, την οποία να θέσουμε ίση με τη συντεταγμένη (χ) που προδιορίζει τη θέση του "paddle" στη σκηνή μας. Αυτή η εντολή είναι η **«ποντίκι χ».** Άρα, η ολοκληρωμένη εντολή που θέτει τη συντεταγμένη (χ) της θέσης του "paddle" στη σκηνή μας ίση με την οριζόντια κίνηση (δεξιά- αριστερά) του δείκτη του ποντικιού μας είναι η παρακάτω : **«** Επίσης, θέλουμε **__σε όλη τη διάρκεια__** του παιχνιδιού να ισχύει η παραπάνω εντολή, δηλαδή να χειρίζεται ο παίχτης το «paddle», μέσω του ποντικιού. Η έκφραση **__σε όλη τη διάρκεια__** προσδιορίζει ότι η παραπάνω εντολή πρέπει να τεθεί μέσα σε μια επαναληπτική δομή **«για πάντα (…)».** Άρα το ολοκληρωμένο σενάριο για το «paddle» είναι το εξής: Θα μπορούσαμε, όμως, να κάνουμε και κάτι άλλο σε αυτό το τμήμα του κώδικα; Πώς θα μπορούσαμε να κάνουμε το "paddle" πέρα από οριζόντια κατεύθυνση να κινείται και σε κάθετη κατεύθυνση (πάνω- κάτω) στη σκηνή, δηλαδή κατα μήκος της συντεταγμένης (y) της σκηνής μας; Ποιά εντολή πρέπει να χρησιμοποιήσουμε για να το πετύχουμε αυτό;
 * //ΣΕΝΑΡΙΟ://**
 * «θέσε το χ ίσο με (….)».**
 * θέσε το χ ίσο με (ποντίκι χ)»**

Αφού περιγράψαμε αναλυτικά τον τρόπο κατασκευής του παιχνιδιού μας, ας δούμε τώρα και μια σχηματική αναπαράσταση των βημάτων της δημιουργίας του παιχνιδιού μας. __Περιγραφή του παραπάνω σχήματος__ Όπως έχουμε σημειώσει και κατά την περιγραφή των σεναρίων των δύο μπαλών μας, υπάρχουν τρία τμήματα κώδικα τα οποία εκτελούνται παράλληλα, από τη στιγμή που ο παίχτης μας πατήσει το πράσινο σημαιάκι και ξεκινήσει το παιχνίδι μας. Αυτά τα τρία τμήματα του κώδικα φαίνονται και στο παραπάνω σχήμα, καθώς στο ένα τμήμα κώδικα η σειρά των εντολών αναπαριστάται με κόκκινα βελάκια, στο δεύτερο τμήμα κώδικα η σειρά των εντολών αναπαριστάται με θαλασσί βελάκια και τέλος στο τρίτο τμήμα η διαδοχή των εντολών φαίνεται με πράσινα βελάκια.

Τέλος, θα ήταν σημαντικό να αναφέρουμε τα κυριότερα στοιχεία του παιχνιδιού Super Pong 2. Θέλουμε, λοιπόν, χρησιμοποιώντας εντολές αισθητήρων να κινούμε μια ρακέτα (paddle), μέσω του ποντικιού μας και να αποκρούουμε τις μπάλες. Από την άλλη θέλουμε οι μπάλες να κινούνται, να αναπηδούν αν ακουμπούν τα όρια, να δείχνουν προς την αντίθετη κατεύθυνση όταν αποκρούονται από το paddle, να επιλέγουν τυχαία για το προς τα πού θα κάνουν μια μικρή στροφή και να συνεχίζουν τη κίνηση τους. Επίσης, ιδιαίτερα σημαντικό είναι το ποια είναι η συνθήκη τερματισμού του παιχνιδιού μας. Μπορείτε να τη διακρίνετε; Όταν οι μπάλες ακουμπούν τη κάτω κόκκινη γραμμή το παιχνίδι μας τερματίζεται. Τέλος, ένα από τα σημαντικότερα στοιχεία του παιχνιδιού μας είναι ότι τα σενάρια των δύο μπαλών μας, περιέχουν τρία τμήματα κώδικα, τα οποία πρέπει να εκτελούνται παράλληλα, από τη στιγμή που αρχίζει το παιχνίδι μας.
 * __ΑΝΑΣΚΟΠΗΣΗ__**

** 2. __ Mini Race 2 __**

=__ **Περιγραφή παιχνιδιού:** __=

Το παιχνίδι Mini Race 2 είναι ένα παιχνίδι αγώνων (rally). Ο χρήστης κατευθύνει ένα όχημα, επιλέγοντας αρχικά το χρώμα της επιλογής του μέσα από μια γκάμα διαθέσιμων χρωμάτων, με στόχο να διανύσει όλη την πίστα και να τερματίσει στο τέλος στο σημείο απ' όπου ξεκίνησε, έχοντας κάνει έτσι το γύρο της πίστας. Πώς όμως παρουσιάζονται όλα αυτά στο συγκεκριμένο παιχνίδι;; Όταν γίνει κλίκ στην πράσινη σημαία, αρχικά υπάρχει το όχημα το οποίο τοποθετείται στην γραμμή εκκίνησης μιας πίστας αγώνων. Επίσης, σχεδιάζεται το ταμπλώ του οχήματος στο κάτω μέρος της οθόνης (με την προσθήκη του δείκτη στροφών και ταχύητητας), τα κουτάκια επιλογής χρώματος του οχήματος, καθώς και το κουμπί εκκίνησης GO. Την εικόνα συμπληρώνουν δυο καρώ σημαίες, όπως υπάρχουν στους αγώνες rally. Ο παίκτης καλείται αρχικά να διαλέξει χρώμα για το όχημά του και στη συνέχεια να πατήσει το κουμπί εκκίνησης. Σκοπός του τότε είναι να πραγματοποιήσει ένα γύρο στην πίστα όσο πιο γρήγορα μπορεί, οδηγώντας το όχημα στο τέλος της πίστας. Με το πάτημα του τελευταίου (κουμπί GO), το όχημα είναι σε θέση ξεκινήσει να κινείται. Πώς όμως πραγματοποιείται η κίνηση του οχήματός μας;; Μα βέβαια, όπως συμβαίνει και στα περισσότερα αντίστοιχα παιχνίδια, με τα βελάκια (πάνω και κάτω) από το πληκτρολόγιο που προκαλούν την επιτάχυνση και την επιβράδυνση του οχήματος αντίστοιχα. Ωστόσο, δεν ισχύει και το ίδιο όσον αφορά στον τρόπο που χρησιμοποιείται για να στρίψει το όχημα. Στο συγκεκριμένο παιχνίδι, σε αντίθεση με άλλα πολλά που σχετίζονται με την κίνηση οχημάτων, δεν χρησιμοποιούνται τα βελάκια(δεξιά και αριστερά) για να βοηθήσουν το αντικείμενό μας να στρίψει. Αυτό το ρόλο αναλαμβάνει το τιμόνι που παρουσιάζεται στο κάτω μέρος της οθόνης, κάνοντας την οδήγηση πολύ πιο παρασταστική στον παίχτη, καθώς έχει πολύ πιο έντονη την αίσθηση πως βρίσκεται σε πραγματικό όχημα αγώνων. Ο χρόνος ξεκινά μόλις το αυτοκίνητο περάσει την γραμμή εκκίνησης. Πρέπει να σημειωθεί πως προς όφελος του παίκτη είναι και η χρήση του nitro, το οποίο επιταχύνει το όχημα για ένα χρονικό διάστημα. Παρόλα αυτά, η συγκεκριμένη δυνατότητα δεν είναι πάντα διαθέσιμη, εφόσον το nitro μετά την εκάστοτε χρήση του, απαιτεί κάποιο χρονικό διάστημα ώστε να "ξαναγεμίσει" και να μπορεί και πάλι να χρησιμοποιηθεί. Το παιχνίδι τερματίζει όταν το όχημα φτάσει στην γραμμή εκκίνησης/τερματισμού. Τότε ο χρόνος σταματά να μετράει και σημειώνεται η επίδοση του παίχτη.

**Σημείωση**
Υπάρχει όμως και μια λεπτομέρεια η οποία διαφοροποιεί το παιχνίδι ακόμα περισσότερο από τα παρεμφερή παιχνίδια αγώνων. Η πίστα αποτελείται βασικά από διάφορα κομμάτια τα οποία εναλλάσσονται κατά τη διάρκεια του παιχνιδιού.. Συγκεκριμένα, ανάλογα με την κατέυθυνση του οχήματος και εφόσον το αυτοκινητό μας ακουμπάει κάποιο από τα κομμάτια της πίστας, ορίζεται ή όχι η εμφάνιση του εκάστοτε κομματιού. Επομένως, είναι τα κομμάτια αυτά που ουσιαστικά μετακινούνται και όχι το όχημα, το οποίο δεν παρεκκλίνει από το κέντρο της οθόνης!! Όλα αυτά διαδραματίζονται από τη στιγμή της εκκίνησης, όταν πατηθεί το πράσινο σημαιάκι, δοθεί το σήμα εκκίνησης GO, οπότε και ο αγώνας ξεκινά...



** Τι θα πρέπει όμως να λάβουμε υπόψιν μας για την κατασκευή του παιχνιδιού; **
Πριν προχωρήσουμε στη λεπτομερή ανάλυση δημιουργίας του παιχνιδιού μας, θα ήταν προτιμότερο να εντοπίσουμε ποια είναι τα βασικά δομικά του στοιχεία, τα αντικείμενα, δηλαδή οι πρωταγωνιστές του. Ας κάνουμε μερικές ερωτήσεις για να ανακαλύψουμε κάποια από αυτά...

**Ξεκινώντας απ' την αρχή....**

 * Ποιοι είναι οι βασικοί πρωταγωνιστές του παιχνιδιού μας- αντικείμενα; (Το όχημα, το τιμόνι, οι δείκτες ταχύτητας και στροφών, το ταμπλώ, τα κομμάτια της πίστας, οι σημαίες, τα κουτάκια των χρωμάτων, το κουμπί/κουτί έναρξης...).
 * Πάμε όμως να τους γνωρίσουμε από κοντά..... Το βασικότερο αντικείμενο που αποτελεί και τον κύριο πρωταγωνιστή στο παιχνίδι μας δεν είναι τίποτα άλλο παρά το όχημα! Μήπως όμως ξεχάσμε κάτι;; Μα φυσικά..Τα κομμάτια της πίστας..Χωρίς αυτά δεν υπάρχει κίνηση! Πάμε λοιπόν να παρουσιάσουμε τα βασικά στοιχεία του παιχνιδιού...
 * **Το Όχημα...** Πρόκειται για τον κύριο πρωταγωνιστή μας... Αρχικά από τα κουμπιά χρωμάτων που εμφανίζονται στην οθόνη, επιλέγουμε το χρώμα που επιθυμούμε να έχει το όχημά μας. Το αμάξι μπορεί να ξεκινήσει να κινείται μόλις δοθεί το σήμα εκκίνησης GO. Η κίνησή του γίνεται **α)** μέσω του πληκτρολογίου και **β)** μέσω του ποντικιού. Για το πρώτο χρησιμοποιούνται τα βελάκια (πάνω και κάτω) για την αυξομέιωση της ταχύητητας, ενώ το δεύτερο βοηθά το όχημα να στρίψει μετακινώντας το ποντίκι ανάλογα...Στόχος είναι να φτάσει στο τέλος της πίστας, στο σημείο τερματισμού, διανύοντας την απόσταση το γρηγορότερο δυνατόν...
 * **Τα κομμάτια της πίστας...** Στο συγκεκριμένο παιχνίδι περιλαμβάνονται 12 κομμάτια πίστας τα οποία μαζί με το σκηνικό είναι αυτά που αποτελούν το κύριο περιβάλλον στο οποίο διαδραματίζεται ο αγώνας. Όπως αναφέραμε και παραπάνω, η σταδιακή διαδοχή τους είναι αυτή που προσφέρει την αίσθηση της κίνησης και όχι αυτή του οχήματος..Η υλοποίηση για καθένα από αυτά είναι παρεμφερής και διαφοροποιείται μόνο στις συντεταγμένες καθώς και στην αλλαγή μιας συγκεκριμένης μεταβλητής που σηματοδοτεί την εμφάνιση του επόμενου κομματιού της πίστας. Ανάλογα με τη θέση του οχήματος κάθε χρονική στιγμή καθορίζεται ποιο κομμάτι θα εμφανίζεται κάθε φορά..
 * **Σκηνικό...** Σε ποιο χώρο όμως εξελίσσεται το παιχνίδι μας....?? Πέρα από τα κομμάτια της πίστας υπάρχει η δυνατότητα δημιουργίας του δικού μας χώρου και μετατροπής της πίστας με βάση την προτίμηση του καθενός..Μια απλή σκέψη για το σκηνικό είναι η προσθήκη πρασίνου (χορτάρι) γύρω από τον αγωνιστικό χώρο..Κανείς όμως δεν σας περιορίζει! Για όσους λοιπόν....έχουν κέφια, σχεδιάστε και δημιουργήστε το δικό σας φόντο βάζοντας...φαντασία!
 * **Το κουμπί έναρξης GO...** Το πάτημά του σηματοδοτεί την έναρξη του παιχνιδιού, εξφανίζοντας σιγά-σιγά από την οθόνη τις καρώ σημαίες και επιτρπέπει στον παίχτη να ξεκινήσει όχημα να κινεί το όχημα..
 * **Οι σημαίες...** Εμφανίζονται στο κέντρο της οθόνης μόλις γίνει κλικ στο πράσινο σημαιάκι, σηματοδοτώντας πως βρισκόμαστε στο σημείο εκκίνησης. Με το πάτημα στη συνέχεια του κουμπιού GO εξαφανίζονται σταδιακά δίνοντας στον παίχτη να καταλάβει πως μπορεί να ξεκινήσει να κινεί το όχημά του..
 * **Τα κουμπιά χρωμάτων...** Διαλέγουμε το χρώμα που επιθυμούμε να έχει το όχημά μας μέσα από μια γκάμα διαθέσιμων χρωμάτων που παρέχονται στο παιχνίδι, απλά πατώντας στο αντίστοιχο κουτάκι χρωμάτων στην αρχή πριν αρχίσει το παιχνίδι.
 * **Το τιμόνι...** Πρόκειται για τον "κινητήριο μοχλό" που κατεθύνει το όχημά μας. Ο χειρισμός του γίνεται από το ποντίκι, βοηθώντας το όχημα να στίψει δεξιά/αριστερά. Επιπλέον, τοποθετείται στο κέντρο της οθόνης για είναι ορατό ανά πάσα στιγμή και να διευκολύνει τον παίχτη στη διάρκεια του παιχνιδιού...
 * **Ο δείκτης ταχύητητας...** Βρίσκεται στο κάτω δεξιά μέρος της οθόνης και πρόκειται για ένα δείκτη ο οποίος αυξομειώνεται ανάλογα με την ταχύτητα του οχήματος..
 * **Ο δείκτης στροφών.....** Αποτελεί ουσιαστικά ένα στροφόμετρο που βρίσκεται κι αυτό κάτω δεξιά στην οθόνη δίπλα από τον δείκτη ταχύτητας και δείχνει τις στροφές ανάλογα με την πορεία του οχήματος..
 * **Το Nitro( + λαμπάκι για το Νitro)...** To nitro παρέχει στο όχημα την επιπρόσθετη δυνατότητα απότομης αύξησης της ταχύητητάς του με το πάτημα του πλήκτρου του κενού (space). Αυτό φυσικά διαρκεί για λίγο χρονικό διάστημα, μέχρι να εξαντληθεί και να είναι πάλι διαθέσιμο αργότερα...Το λαμπάκι για το Nitro εντοπίζεται στο κάτω τμήμα του ταμπλό, δίπλα από το τιμόνι. Η φωτεινή του ένδειξη αλλάζει από κίτρινη σε μωβ όταν αυτό είναι διαθέσιμο και έτοιμο για χρήση...
 * **Μερικές..παρατηρήσεις**


 * Το όχημα θέλουμε να κινείται σύμφωνα με τις οδηγίες του παίκτη...
 * Πώς το πετυχαίνουμε αυτό; (Με εντολές κίνησης...από ποντίκι και πληκτρολόγιο, όπως είδαμε στο Κεφάλαιο 5 που σχετίζεται με την κίνηση των αντικειμένων).
 * Όταν το όχημα ακουμπήσει το γρασίδι θέλουμε να επιβραδύνει, δηλαδή να μειωθεί η ταχύτητά του. Τι πρέπει να κάνουμε για να το πετύχουμε αυτό; ( Με εντολή κίνησης σε συνδυασμό με μια αριθμητική έκφραση για να προσδιορίσουμε την μείωση ταχύτητας, αλλά και με την έννοια των αισθητήρων για να προσδιορίσουμε το πότε ακουμπάει) Οι έννοιες αυτές αφορούν τόσο στην κίνηση όσο και στον έλεγχο και τις αριθμητικές εκφράσεις( Κεφάλαια 5, 11, 15).
 * Όταν ο παίκτης χρησιμοποιήσει το nitro θέλουμε να επιταχύνει το όχημα, μέχρι αυτό να εξαντληθεί .Τι πρέπει να κάνουμε; ( Με εντολή κίνησης σε συνδυασμό με μια αριθμητική έκφραση για να καθορίσουμε την αύξηση ταχύτητας μέχρι ένα συγκεκριμένο χρονικό όριο...), (Κεφάλαια 5, 15).
 * Πώς μπορούμε να μετρήσουμε το χρόνο του κάθε παίχτη, δηλαδή την επίδοσή του; ( Μέσω της δημιουργίας μιας μεταβλητής που μετράει το χρόνο του κάθε παίχτη (μετρητής) ), (Κεφάλαια 14, 15).
 * Πότε ενεργοποιείται ο ήχος που ειδοποιεί ότι παρεκκλίναμε της πορείας μας;; Όταν το όχημα ακουμπήσει το γρασίδι ακούγεται ένας συγκεκριμένος ήχος συνεχόμενα μέχρις ότου να ξαναμπεί στην πορεία του..(Μέσω εντολών αισθητήρων σε συνδυασμό με ότι αφορά στην προσθήκη ήχου), ( Κεφάλαια 8, 9).
 * Πώς μπορούμε να δημιουργήσουμε τα δικά μας αντικείμενα ή να διαμορφώσουμε τα ήδη υπάρχοντα;; (Κεφάλαια 2, 3, 4, 6).

= __**ΣΚΗΝΙΚΟ**__ =

Το βασικότερο στοιχείο, που αποτελεί ένα από τα κυριότερα βήματα στην εκκίνηση κατασκευής του παιχνιδιού, είναι η δημιουργία του σκηνικού (φόντο). Τι θα μπορούσαμε να κάνουμε για να ταιριάζει το σκηνικό μας σε μία πίστα αγώνων;; Ίσως να χρωματίζαμε πράσινο το φόντο για να φαίνεται ως γρασίδι... Πηγαίνοντας, λοιπόν, στο σκηνικό, μεταβαίνουμε στην επιλογή **«Υπόβαθρα»** και στην συνέχεια στην επιλογή **«Ζωγραφική»**, για το χρωματισμό του σκηνικού με πράσινο χρώμα . Σε αυτό το σημείο έχουμε ήδη δημιουργήσει το πρωταρχικό σκηνικό μας.



__**ΔΗΜΙΟΥΡΓΙΑ ΤΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ-ΕΜΦΑΝΙΣΗ**__
Ωραία ως εδώ....Ποιοι είναι όμως οι πρωταγωνιστές του παιχνιδιού μας; Κύριος πρωταγωνιστής στο παιχνίδι μας είναι φυσικά...το όχημα (αμαξάκι-car). Ωστόσο, δεν είναι ο μόνος... Υπάρχουν επίσης το ταμπλώ με τις ενδείξεις, το τιμόνι, τα κομμάτια της πίστας, τα κουτιά/κουμπιά χρωμάτων και έναρξης (GO), οι σημαίες καθώς και το nitro. Πώς μπορούμε λοιπόν να τα δημιουργήσουμε όλα αυτά; Είναι πολύ απλό!! Πατάμε στην επιλογή **<<Ζωγράφισε νέα μορφή>>** και σχηματίζουμε σιγά σιγά, ένα-ένα τα αντικείμενά μας. Επιπλέον, μπορούμε να ρυθμίσουμε το μέγεθός τους ανάλογα με το γούστο του καθενός... Τέλος, δίνουμε στο καθένα από ένα χαρακτηρηστικό όνομα, που θα μας διευκολύνει αργότερα στην περαιτέρω ανάπτυξη της δημιουργιας του παιχνιδιού.

Κατασκευάζοντας το τιμόνι...
Από τη ζωγραφική μπορείτε έυκολα και γρήγορα να μετασχηματίσετε το παραπάνω αντικείμενο εκμεταλλευόμενοι της δυνατότητες που παρέχει αυτό το εργαλείο στο Scratch..



Τροποποιώντας το ταμπλώ μέσα από τη .... ζωγραφική..



 * Δημιουργώντας το δικό σας όχημα........**
 * Μέσα από τη ζωγραφική δίνεται η δυνατότηα επεξεργασίας του οχήματος, αλλαγής του χρώματος καθώς και του μεγέθους που επιθυμεί ο παίχτης..**



**Σενάριο για τα κομμάτια της πίστας:**
Ένα μεγάλο κεφάλαιο για το παιχνίδι είναι η κίνηση του οχήματος μέσα στην πίστα. Σ' αυτό, σημαντικό ρόλο διαδραματίζουν τα κομμάτια της πίστας και η σωστή τοποθέτησή τους στο περιβάλλον του παιχνιδιού. Ειδικότετρα,τα σενάρια των κομματιών της πίστας φτιάχνονται με παρόμοιο τρόπο και διαφοροποιούνται σε ορισμένα σημεία που αφορούν στις συντεταγμένες και τη μεταβλητή που ορίζεται για να καθορίσει την εμφάνισή τους στην οθόνη. Όπως επισημάνθηκε και στην αρχική περιγραφή του παιχνιδιού, το όχημα δεν κινείται, αλλά μένει στατικό στην ίδια θέση 0,0. Αυτά που μετακινούνται και μας δίνουν την αίσθηση της κίνησης είναι τα κομμάτια της πίστας..!! Συνεπώς, για το σχηματισμό των αντίστοιχων σεναρίων, πρέπει να λάβουμε υπ' όψιν όλα τα παραπάνω. Ας δώσουμε όμως στους αναγνώστες, μια "γέυση" για τη σφαιρική μορφή του χώρου που εξελίσσεται ο αγώνας, παρουσιάζοντας τα ξεχωριστά κομμάτια της πίστας, η σύνθεση των οποίων συντελεί στη δημιουργία της πίστας που πρέπει να διανύσει το όχημα για να τερματίσει.

Μια γενική εικόνα των κομματιών της πίστας παρουσιάζεται παρακάτω:

Στο παραπάνω σχήμα παρουσιάζονται τα διαφορετικά κομμάτια της πίστας. Πρόκειται για τα αντικείμενα που εναλλάσσονται στη σκηνή ανάλογα με το αν το κομμάτι "ακουμπά" στο όχημα. Κάτω από κάθε κομμάτι αναγράφεται η ετικέτα (όνομα) που αντιστοιχεί σε κάθε ένα από αυτά. Το αυτοκίνητο, ακολουθώντας τη φυσική διαδρομή, χωρίς λάθη, θα πρέπει να διαγράψει την ακόλουθη πορεία η οποία θα το οδηγήσει πίσω στη θέση εκκίνησης, όπου μετά το πέρας του αγώνα θα αποτελεί πια τη θέση τερματισμού..

Ας δώσουμε όμως καλύτερα, αναλυτικά, μια περιγραφή. Θέλουμε, λοιπόν, να σχηματίσουμε το σενάριο για ένα κομμάτι της πίστας. Πρώτα πρέπει να βρούμε την ακριβή θέση του κομματιού στην οθόνη (σε αυτό μας βοηθάει η ζωγραφιά μας στο χαρτί που αναφερθήκαμε πιο πάνω). Για το κομμάτι μας έστω ότι το x,y είναι 160 και 220 αντίστοιχα. Με την έναρξη του παιχνιδιού θέλουμε να τοποθετείται σε αυτή τη θέση. Συνεπώς, έχουμε:



Έπειτα, όπως είπαμε και πριν, πρέπει το κομμάτι να μετακινείται στην οθόνη ανάλογα με την "κίνηση" του οχήματος, εφόσον σε αυτό στηρίζεται η κίνηση στο παιχνίδι και όχι στο όχημα.. Γι' αυτό το λόγο, οφείλουμε να γνωρίζουμε τη σχετική θέση του οχήματος κάθε στιγμή. Συγκεκριμένα, χρησιμοποιούμε δυο μεταβλητές που κρατούν το σχετικό (x,y), δηλαδή τις συντεταγμένες του οχήματος. Αυτές οι μεταβλητές ονομάζονται allx,ally για οριζόντια και κατακόρυφη συνιστώσα, αντίστοιχα. Στόχος είναι το κομμάτι μας να κινείται συνεχώς, και πάντα σύμφωνα με την κίνηση του οχήματος. Άρα, χρησιμοποιούμε την έκφραση ελέγχου **<<Για Πάντα>>**, δηλώντας έτσι την επαναληπτική διαδικασία και την έκφραση κίνησης **<<πήγαινε στο x:y:>>** για τη μετάβαση στο σημείο που ορίζουν τα allx+x και ally+y που αντιστοιχούν στα x και y της παραπάνω εντολής. Με την τελευταία εντολή του κώδικα,το κομμάτι μας πρέπει να εμφανίζεται μόνο σε περίπτωση που βρίσκεται στην οθόνη. Για να το ελέγξουμε αυτό βάζουμε μία έκφραση ελέγχου **<<εάν αλλιώς>>** σε συνδυασμό με μια έκφραση από τις όψεις **<<απόκρυψη>>**, **<<εμφάνισε>>,** όπου ουσιαστικά ελέγχουμε τις συντεταγμένες για να δούμε μέχρι πότε θα εμφανίζεται το κομμάτι μας. Τέλος, πρέπει να γνωρίζουμε αν το όχημα μας έχει "περάσει" από το συγκεκριμμένο κομμάτι της πίστας. Χρησιμοποιούμε μια **<<εάν>>** μαζί με έναν αισθητήρα που θα μας δείχνει αν το όχημα "αγγίζει" το κομμάτι. Σε αυτό το σημείο, χρησιμοποιούμε επιπρόσθετα στον έλεγχο και μια νέα μεταβλητή, την **jouney** η οποία στη περίπτωση που έχει διασχιστεί το αντίστοιχο κομμάτι, αυξάνεται κατά ένα για να υποδείξει το επόμενο κομμάτι της πίστας που πρέπει μα εμφανιστεί στη συνέχεια. Εξάλλου, ρίχνοντας μια ματιά στον κώδικα θα δει κανείς πως καθένα από τα 12 κομμάτια έχει ξεχωριστή τιμή για τη μεταβλητή **journey** από 0 έως 11, ξεκινώντας από το κομμάτι με ετικέτα **c** το οποίο αποτελεί το τμήμα που γίνεται η εκκίνηση και ο τερματισμός του οχήματος. Στην τελευαταία περίπτωση, που απαιτεί και επιπρόσθετο έλεγχο (παρουσιάζεται πιο κάτω) στο συγκεκριμένο κομμάτι της πίστας, η **journey** παίρνει και την τιμή 12.



Σε κάθε ένα κομμάτι πίστας λοιπόν, αλλάζει μόνο το x,y που δίνει την θέση του. Ωστόσο, ένα κομμάτι περιέχει κάτι το διαφορετικό από τα άλλα στο σενάριό του. Πρόκειται συγκεκριμένα για το κομμάτι που περιέχει τη γραμμή εκκίνησης/τερματισμού, με ετικέτα **c**. Εκεί θέλουμε δυο ακόμη πράγματα. Πρώτον, μόλις το όχημα το ακουμπήσει για πρώτη φορά, δηλαδή στην γραμμή εκκίνησης, πρέπει να ξεκινά να μετρά ο χρόνος. Χρησιμοποιούμε λοιπόν μία έκφραση ελέγχου **<<μετάδωσε>>** μέσα σε μία **<<εάν>**> για να σηματοδοτήσουμε την έναρξη του χρόνου (starttime). Δεύτερον, πρέπει να τερματίζουμε το παιχνίδι όταν το όχημα φτάνει ξανά στο κομμάτι, αφού διασχίσει όλη την πίστα. Συνεπώς, με μία ακόμη **<<εάν>>** ελέγχουμε αν το όχημα "τερμάτισε" την πίστα, οπότε πρέπει και να τερματιστεί το παιχνίδι, με τη χρήση της έκφρασης **<<σταμάτησέ τα όλα>>**.



Σενάριο για τα κουμπιά χρωμάτων
Είναι πολύ απλό... Αυτό που θέλουμε από τα κουμπιά, είναι μόνο να αλλάζουν το χρώμα του οχήματος. Γι' αυτό το λόγο, το σενάριο περιέχει έναν έλεγχο. Συγκεκριμένα, αν γίνει κλικ στο χρώμα, τότε δίνεται στη μεταβλητή colour η αντίστοιχη τιμή του χρώματος...

**Ορίζοντας αρχικά μια μεταβλητή.....** Με την επιλογή ενός χρώματος για το όχημα από τον χρήστη, ανατίθεται μια τιμή στη μεταβλητή colour ανάλογα με το εκάστοτε χρώμα.. Στο συγκεκριμένο παράδειγμα, αν ο χρήστης επιλέξει το μωβ, το colour θα γίνει 3.



Αλλάζοντας το χρώμα του οχήματος.... Ωστόσο, το σενάριο για τα κουμπιά χρωμάτων, σχετίζεται άμεσα με αυτό του σεναρίου για το όχημα. Εκεί γίνεται ουσιαστικά η αλλαγή στο χρώμα του αυτοκινήτου. Όπως φαίνεται και παρακάτω, στο σενάριο για το όχημα γίνεται έλεγχος για την τιμή του colour (η οποία έχει αποδοθεί στη συγκεριμένη τιμή από τη στιγμή που ο χρήστης έχει επιλέξει κάποιο χρώμα, όπως αναφέραμε παραπάνω) και βάσει αυτής αλλάζει η ενδυμασία, δηλαδή το χρώμα για το όχημά μας...!



Σενάριο για το κουμπί GO
Επίσης πολύ απλό... Αυτό που θέλουμε είναι όταν πατηθεί το κουμπί GO να δοθεί "σήμα" για την έναρξη του αγώνα. Μόλις γίνει αυτό θα μπορούμε να ξεκινήσουμε το όχημά μας και ο αγώνας ξεκινά...!! Έτσι, έχουμε :



Σενάριο για τις σημαίες
Όταν πατηθεί η πράσινη σημαία, εμφανίζονται οι σημαίες. Έτσι...



Επιπλέον, με το πάτημα του κουμπιού GO θέλουμε να εξαφανίζονται οι σημαίες σιγά-σιγά. Χρησιμοποιούμε μία εντολή **<<επανάλαβε>>** και μία εντολή για εφέ ώστε να δίνεται η εντύπωση πως φαίνεται να σβήνει η εικόνα σταδιακά μέχρι να εξαφανιστεί εντελώς.

Σενάριο για το τιμόνι
Καταρχάς, το τιμόνι είναι αυτό το οποίο καθοδηγεί το όχημά μας. Ουσιαστικά, το ελέγχει ο παίκτης με το ποντίκι. Πρώτον, θέλουμε να ενεργοποιείται, όταν γίνει κλικ στην πράσινη σημαία και δεύτερον, να βρίσκεται σε πρώτο πλάνο για να το βλέπουμε κάθε στιγμή... Αυτο διευκολύνει τον παίχτη σ' όλη τη διάρκεια του παιχνιδιού. Άρα...

Για να τοποθετήσουμε το τιμόνι σε μία θέση στο κέντρο του κάτω μέρους της οθόνης, ώστε να δείχνει και σε μία κατακόρυφη κατεύθυνση γράφουμε έχουμε..



Προσθέτουμε επίσης τυπικά μία καθυστέρηση πριν αρχίσει να κινείται...



Τώρα αυτό που θέλουμε από το τιμόνι μας είναι να ακολουθεί συνεχώς την κίνηση του ποντικιού και να στρίβει κι αυτό ταυτόχρονα, αλλά παράλληλα να δίνει εντολή και στο όχημα να στρίψει. Ελέγχουμε αν το ποντίκι βρίσκεται σε επιτρεπτά όρια και δίνουμε τις κατάλληλες εντολές για τα παραπάνω...



Σενάριο για το όχημα
Το όχημα είναι το πιο σημαντικό στοιχείο του παιχνιδιού. Αυτό οδηγεί ο παίκτης, με αυτό υπολογίζεται η πορεία του παιχνιδιού... Αρχικά, θέλουμε το όχημα να είναι στο κέντρο της οθόνης με κατεύθυνση 90 μοίρες και να έχει μηδενική ταχύτητα. Επίσης, δεν πρέπει να ξεχάσουμε να αρχικοποιήσουμε τις μεταβλητές που ορίζουν το στρίψιμο και το nitro. Τέλος, θέλουμε να το εμφανίσουμε και να το βλέπουμε συνεχώς, δηλαδή να είναι σε πρώτο πλάνο. Άρα έχουμε...

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



Στο παιχνίδι μας, επιπρόσθετα, θέλουμε όταν το όχημα "βγαίνει" από την πίστα, δηλαδή αγγίζει το "γρασίδι"(πράσινο), να επιβραδύνεται. Αυτό το υλοποιούμε μέσα από δυο σενάρια : **α)** του οχήματος και **β)** του δείκτη ταχύτητας, το οποίο και θα αναφέρουμε αργότερα. Στο σενάριο του οχήματος αρκεί μόνο να ελέγξουμε εάν έχει βγει από τα όρια του δρόμου. Χρησιμοποιούμε έναν αισθητήρα για την αντίστοιχη υλοποίηση.



Αυτό όμως που είναι το πιο σημαντικό στο σενάριο του οχήματος είναι η κίνηση. Όπως είπαμε, ελέγχουμε την κίνηση με τα βελάκια (πάνω,κάτω) και με το ποντίκι. Το όχημα μπορεί να κινηθεί μόνο αφού πατηθεί το GO, όπως φαίνεται και παρακάτω..

Όταν πατήσουμε το πάνω βελάκι το όχημα πρέπει να επιταχύνει ( ή να επιβραδύνει αντίστοιχα, ακόμα και να πηγαίνει όπισθεν). Για να το πετύχουμε αυτό έχουμε...



Αντίστροφα, με το κάτω βελάκι...



Όταν χρησιμοποιούμε nitro η ταχύτητα του οχήματος αυξάνεται, και όταν "εξαντληθεί" το nitro, η ταχύτητα πρέπει να μειωθεί στις κανονικές τιμές.



Επίσης όταν στρίβει το όχημα, η κατεύθυνσή του αλλάζει στην οθόνη.

Τέλος, στο σενάριο του οχήματος πρέπει να υλοποιηθεί και η λειτουργία του nitro. Το nitro ενεργοποιείται όταν το όχημα περάσει τη γραμμή εκκίνησης. Τότε αρχικοποιείται ως διαθέσιμο και "γεμάτο".



Σκοπός μας είναι, μόλις πατηθεί το πλήκτρο space να χρησιμοποιηθεί το nitro (και να αυξηθεί η ταχύτητα μέχρι ενός σημείου) μέχρι να "τελειώσει".



Τώρα, θέλουμε να γεμίσει ξανά σταδιακά. Όταν γίνει αυτό, μπορούμε να το χρησιμοποιήσουμε εκ νέου.



Σενάριο για το δείκτη ταχύητητας
Αυτό που ζητάμε από το δείκτη ταχύτητας είναι να δείχνει ανά πάσα στιγμή την ταχύτητα (με σχετικό τρόπο) του οχήματος. Αρχικοποιείται σε μία θέση και κατεύθυνση που δίνει την ένδειξη για ταχύτητα μηδέν.

Ο δείκτης πρέπει να αλλάζει κατεύθυνση ανάλογα με την ταχύτητα.



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

Σενάριο για το Nitro:
Το nitro εμφανίζεται σαν φλόγα στο πίσω μέρος του οχήματος όταν πατηθεί το κενό (space) και μέχρι να εξαντληθεί. Η λεπτομέρεια εντοπίζεται στο γεγονός πως πρέπει να έχει την ίδια κατεύθυνση με το όχημα. Το nitro_on=0 σημαίνει ότι δεν έχει χρησιμοποιηθεί (αρχικοποιήση), ενώ όταν είναι 1 το αντίθετο.



Σενάριο για το λαμπάκι του Nitro:
Αρχικά δίνουμε θέση χρώμα και ενδυμασία στο λαμπάκι.



Το λαμπάκι είναι κίτρινο. Ωστόσο, όταν είναι διαθέσιμο το nitro γίνεται χρώματος μωβ και αναβοσβήνει. Διαθέσιμο γίνεται, όταν αρχικά το όχημα περάσει τη γραμμή εκκίνησης **<<όταν λάβω starttime >>**. Αυτό, όταν δεν έχει χρησιμοποιηθεί αλλά και όταν "γεμίσει" εκ νέου μετά από κάποια χρήση του...



Σενάριο για το ταμπλώ:
Το ταμπλώ απλά υπάρχει ως εικόνα στην οθόνη μας.

Επιπλέον, χρησιμοποιούμε ένα βοηθητικό αντικείμενο για να υλοποιήσουμε την κίνηση του οχήματος. Στο σενάριο για αυτό το αντικείμενο υπάρχουν εντολές που αρχικοποιούν τη θέση της πίστας.. Επίσης, μοντελοποιείται η επιβράδυνση του οχήματος όταν αυτό αγγίζει το γρασίδι. Ομοίως, το ίδιο συμβαίνει και με τη θέση καθώς και με τις στροφές του οχήματος στην πίστα.



Μερικές....επεκτάσεις!
Επιτέλους..!!! Το παιχνίδι μας είναι έτοιμο! Μήπως όπως η απλή το μορφή το κάνει λίγο βαρετό...??? Τι θα μπορούσαμε να κάνουμε για το κάνουμε λίγο πιο εντυπωσιακό...;; Μια πρώτη σκέψη θα ήταν η προσθήκη κάποιων ηχητικών εφέ σε διάφορα σημεία του παιχνιδιού. Που θα μπορούσε όμως να εφαρμοστεί κάτι τέτοιοιο..?

Όταν ο το όχημα ξεφύγει από τη πορεία του και "πατήσει" το γρασίδι θα μπορούσε να ακούγεται κάποιος ήχος που να ειδοποιεί τον παίχτη.. Ας σκεφτούμε γι' αυτό κάτι απλό για να υλοποιήσουμε τη συγκεκριμένη λειτουργία. Ας τα πάρουμε όμως από την αρχή... Τι θέλουμε να ακούγεται;; Κάποιος ήχος..Πως θα προσθέσουμε κτ τέτοιο;; Πολύ εύκολα, μεταβαίνουμε από το κεντρικό παράθυρο την επιλογή "**Ήχος**" από τις τρεις που εμφανίζονται..Από εκεί, πολύ απλά διαλέγετε από το μενού **"Εισαγωγή"** όποιο ήχο σας αρέσει... Βέβαια, υπάρχει η δυνατότητα εισαγωγής του ήχου της αρεσκείας σας μέσα από την επιλογή "**Ηχογράφηση**" από το αντίστοιχο μενού..



Μήπως ξεχάσαμε κτ;; Μα φυσικά..!! Πως θα ειδοποιήσετε τον παίτη όταν το όχημά του ακουμπήσει στο γρασίδι;; Αυτό δε σχετίζεται με τίποτα άλλο παρά με την **έννοια των αισθητήρων** σε συνδυασμό με τις **εντολές ελέγχου** στο περιβάλλον του Scratch... Γι' αυτό στον κώδικά μας, πηγαίνουμε και τοποθετούμε τον έλεγχο **"εάν αγγίζει το (πράσινο χρώμα)"** Στο συγκεκριμένο παράδειγμα έχει επιλεγεί ο ήχος Laser1. Σε διαφορετική περίπτωση, το οn grass τίθεται σε 0 (δηλαδή όταν το όχημα κινείται εντός των κομματιών της πίστας και δεν αγγίζει το γρασίδι) Φυσικά, όλα αυτά προστίθενται στον κώδικα για το αυτοκίνητο...
 * "όρισε on grass σε 1"** (δηλαδή, το όχημα πατάει το γρασίδι...) και στη συνέχεια "**παίξε ήχο //Ήχος//**"¨, όπου //Ήχος// αυτό που επιλέξαμε προηγουμένως..



Αυτή είναι η πρώτη μας επέκταση...! Είστε όμως ευχαριστημένοι;; Χμμ...Όχι και τόσο... Ας δοκιμάσουμε λοιπόν κάτι ποιο σύνθετο στο παιχνίδι...

Τι θα λέγατε αν βάζαμε κάποια εμπόδια ώστε να κάνουμε τη ζωή του παίχτη λίγο πιο δύσκολη.?!! Γιατί όχι? Μια ιδέα είναι η δημιουργία ενός καινούριου αντικειμένου, που θα παίζει το ρόλο του εμποδίου...Πως όμως δημιουργούμε ένα νέο αντικείμενο?? Μπορούμε να εισάγουμε ένα από τα έτοιμα αντικέιμενα που ήδη παρέχει έτοιμα το Scratch.. Από το κεντρικό παράθυρο, από το μενού "**Ενδυμασίες"** μεταβαίνουμε στην επιλογή εισαγωγή όπου μπορούμε να διαλέξουμε κάποιο από τα αυτά που αντιστοιχούν σε μία από τις κατηγορίες που παρέχει το πρόγραμμα.



Παρόλα αυτά, υπάρχει η δυνατότητα δημιουργίας του δικού σας αντικειμένου! Κάτι τέτοιο μπορεί να γίνει μέσα από τη ζωγραφική. Σχεδιάζετε ότι θέλετε και στη συνέχεια το εισάγετε ως νέο αντικείμενο. Βάλτε τη φαντασία σας και δημιουργήστε το διικό σας εμπόδιο!! Σε αυτό το παράδειγμα έχει δημιουργηθεί ένα καινούριο αντικείμενο που έχει σχεδιαστεί στη ζωγραφική ως ένα μωβ τετραγωνάκι, συμβολίζοντας το εμπόδιο. Όμως, εδώ το εμπόδιο δεν είναι ξεχωριστό αντικείμενο, απλά έχει προστεθεί σε κάθε κομμάτι της πίστας που έχουμε...



Βέβαια, δεν είναι ανάγκη να προστεθεί σε όλη την πίστα...Ανάλογα με τα γούστα του καθενός και το επίπεδο δυσκολίας που επιθυμεί μπορεί να ενεργήσει αναλόγως.....

Ίσως λείπει κάτι..... Τι θα γίνει στην περίπτωση που ο οδηγός είναι απρόσεκτος και πέσει πάνω στο εμπόδιο; Θα εκρύγνυται το αυτικίνητο?? Μάλλον όχι...!!! Μπορείτε, όμοια με πριν, να προσθέσετε ένα νέο ήχο που σηματοτοδοτεί την πρόσκουση στο εμπόδιο. Εδώ, έχει επιλεγεί το AlienCreak1. Επιπλέον, το όχημα πρέπει να σταματά. Οπότε ορίζουμε την ταχύτητά του σε 0. Πότε είπαμε ότι θα γίνετε αυτό; Όταν το αυτοκίνητο αγγίζει το εμπόδιο..

Συνεπώς, τοποθετούμε στην αρχή μια εντολή ελέγχου που ελέγχει το παραπάνω, εκμεταλλεύοντας έτσι την ιδιότητα των αισθητήρων που προσφέρει το Scratch.

Παρακάτω, δίνεται ένα σχήμα που παρουσιάζει διαγραμματικά μερικές από τις βασικές λειτουργίες που διαδραματίζονται στο συγκεκριμένο παιχνίδι...



**Σύντομη περιγαφή του σχήματος...**
Στο συγκεκριμένο σχήμα παρουσιάζονται αρχικά σχεδόν όλα τα βασικά αντικείμενα που υπάρχουν στο παιχνίδι μας. Στη συνέχεια, για το καθένα παρατίθενται τα σημαντικότερα σημεία που αφορούν στις λειτουργίες που λαμβάνουν χώρα. Για παράδειγμα, στο σενάριο για τα κομμάτια της πίστας αναφέρεται αυτό με ετικέτα **c** που αποτελεί την πιο ξεχωριστή περίπτωση απ' όλα, αφού αποτελεί σημείο εκκίνησης και τερματισμού ταυτόχρονα, επιτρέποντας στη μεταβλητή **journey** να πάρει δύο διακριτές τιμές (0 και 12) με τον αντίστοιχο έλεγχο να ακολουθεί για κάθε περίπτωση. Το ίδιο συμβάινει και με τα υπόλοιπα, όπως με τη χρήση του nitro, το σενάριο για τα κουμπιά χρωμάτων, το δείκτη ταχύητας και φυσικά το σενάριο για το όχημα.

__**ΑΝΑΣΚΟΠΗΣΗ**__
Το Mini Race 2 είναι παιχνίδι που αφορά σε αγώνες οχημάτων και αναδεικνύει πολλές από τις έννοιες που συναντώνται στο Scratch, όπως αυτή της κίνησης, των αισθητήρων καθώς και των αριθμητικών εκφράσεων σε συνδυασμό με τις δομές ελέγχου και επανάληψης. Βασικός πρωταγωνιστής μας είναι το όχημα, το οποίο μέσω του πληκτρολογιου και του ποντικιού κατευθύνεται από τον παίχτη. Στόχος του είναι να διασχίσει όσο πιο γρήγορα γίνεται τον αγωνιστικό χώρο της πίστας και να φτάσει στο σημείο τερματισμού. Το σκηνικό πλαισιώνουν επιπρόσθετα και άλλα αντικείμενα όπως το τιμόνι, οι σημαίες, οι δείκτες ταχύτητας και στροφών, το nitro και φυσικά... τα κομμάτια της πίστας. Τα τελευταία, αποτελούν ίσως το πιο αξιοσημείωτο αντικέιμενο μαζί με το όχημα, μιας και είναι αυτά που δίνουν στον παίχτη την αίσθηση της κίνησης. Συγκεκριμένα, αυτό επιτυγχάνεται με κατάλληλο έλεγχο μεταβλητής που βοηθά στην εμφάνιση των αντίστοιχων κομματιών της πίστας.Τέλος, είναι δυνατόν ο οποιοσδήποτε, εφαρμόζοντας τις βασικές αρχές του Scratch και επιστρατεύοντας τη φαντασία του να διαμορφώσει το δικό του σκηνικό αλλάζοντας τα σενάρια όπως αυτός θέλει... Τι περιμένετε λοιπόν;; Ξεκινήστε τώρα, ανακαλύπτοντας τις δυνατότητές σας σε αυτό το ευχάριστο και δημιουργικό προγραμματιστικό περιβάλλον που σας προσφέρει το Scratch !!!

_

_

_

_

** __3. ROCKET MAN-1__ **

__**Περιγραφή παιχνιδιού:**__

Το ROCKET MAN -1

είναι ένα παιχνίδι “Action” που αναφέρεται σε κάθε ηλικία.Ο χρήστης καλείται να καθοδηγήσει μία ρουκέτα την οποία εκτοξεύει σε γωνία κλίσης της επιλογής του. Στη συνέχεια με την χρήση του ποντικιού να την οδηγήσει επιτυχημένα στο στόχο, ξεπερνώντας τα εμπόδια που θα συναντήσει στη πορεία του ανάλογα με το επίπεδο που βρίσκεται. Εαν το κατορθώσει αυτό με επιτυχία περνάει στο επόμενο επίπεδο, αλλιώς ξαναπροσπαθεί στο ίδιο έως ότου εξαντληθεί ο αριθμός των διαθέσιμων ρουκετών. Κάνοντας λοιπόν κλικ στην πράσινη σημαία που βρίσκεται στην επάνω δεξιά γωνία το παιχνίδι ξεκινά.

Αρχικά εμφανίζεται μία οθόνη έναρξης στην οποία ο χρήστης έχει τη δυνατότητα να πατήσει το “START” έτσι ώστε να συνεχίσει προκειμένου να παίξει το παιχνίδι.

Στη συνέχεια εμφανίζεται νέα οθόνη στην οποία δίνεται η δυνατότητα στον παίκτη να επιλέξει μία από τις τέσσερις επιλογές που εμφανίζονται:

Επιλέγοντας το “NORMAL” ο παίκτης οδηγείται σε νέο μενού επιλογών. Επιλέγοντας το “TIME” ο παίκτης αρχίζει να παίζει το παιχνίδι ενώ ταυτόχρονα τρέχει και μετράει ένας χρονομετρητής – timer. Επιλέγοντας το “EDITOR” δίνεται η δυνατότητα στον παίκτη να παίξει δοκιμαστικά μόνο το Level_1 έτσι ώστε να δει το παιχνίδι. Επιλέγοντας το “PRACTICE” ο παίκτης αρχίζει να παίζει κανονικά το παιχνίδι και να κάνει εξάσκηση σε αυτό.

1) Επιλέγοντας το “NORMAL” ο παίκτης οδηγείται σε νέο μενού επιλογών. Το νέο μενού που εμφανίζεται δίνει στο παίκτη τη δυνατότητα να επιλέξει το επίπεδο δυσκολίας του παιχνιδιού. Ο χρήστης έχει στη διάθεσή του τρία επίπεδα δυσκολίας από τα οποία μπορεί να επιλέξει. Αυτά είναι : 1) EASY, 2) MEDIUM , 3) HARD. Μετά από την αντίστοιχη επιλογή του αρχίζει να παίζει κανονικά το παιχνίδι στο βαθμό δυσκολίας τον οποίο επέλεξε.



2) Επιλέγοντας το “TIME” ο παίκτης αρχίζει να παίζει το παιχνίδι ενώ ταυτόχρονα τρέχει και μετράει ένας χρονομετρητής – timer. Με την επιλογή αυτή ο χρήστης δεν μπορεί να καθορήσει το επίπεδο δυσκολίας που επιθυμεί. Αυτό καθορίζεται αυτόματα απο το παιχνίδι. Επιπλέον με την επιλογή αυτή το παιχνίδι δεν αλλάζει στον τρόπο παιξίματος, απλά η διαφορά του σε σχέση με την προηγούμενη επιλογή είναι πως κατά τη διάρκεια του παιχνιδιού υπάρχει ένας χρονομετρητής, ο οποίος κυλάει αυξανόμενος όταν ο χρήστης είναι εν δράση στο παιχνίδι.

3) Επιλέγοντας το “EDITOR” δίνεται η δυνατότητα στον παίκτη να παίξει δοκιμαστικά μόνο το Level_1 έτσι ώστε να δει το παιχνίδι. Δεν μπορεί να προχωρήσει στα επόμενα επίπεδα ακόμα και αν πετυχαίνει το στόχο του.

4) Επιλέγοντας το “PRACTICE” ο παίκτης αρχίζει να παίζει κανονικά το παιχνίδι και να κάνει εξάσκηση σε αυτό.Δεν υπάρχει εξαντλούμενος αριθμός ρουκετών έτσι ώστε να προσπαθεί ο χρήστης όσες φορές επιθυμεί. Ακόμα του δίνεται η δυνατότητα να περάσει από όλα τα επίπεδα με την προϋπόθεση ότι έχει ολοκληρώσει επιτυχημένα κάθε ένα απο αυτά.

__**ΑΝΑΛΥΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΠΑΙΧΝΙΔΙΟΥ**__

Τα βασικά αντικείμενα που θα συναντήσει ο χρήστης στο παιχνίδι είναι :



Ο χρήστης επιλέγει το κλίση της γωνίας για την εκτόξευση της βολής που κατά την κρίση του είναι η σωστή ώστε να πετύχει το στόχο του και στη συνέχεια πατώντας κλικ δίνει εντολή και εκτοξεύεται η ρουκέτα.



Ο παίκτης αφού εκτοξευτεί η ρουκέτα με την επίδραση του ποντικιού την καθοδηγεί προς οποιαδήποτε κατεύθυνση επιθυμεί αυτός. Σκοπός του είναι να οδηγήσει τη ρουκέτα στο ανθρωπάκι που βρίσκεται απέναντι έτσι ώστε να κερδίσει το επίπεδο στο οποίο βρίσκεται και να προχωρήσει στο επόμενο επίπεδο.Ο αριθμός των ρουκετών που έχει στη διάθεσή του ο παίκτης είναι περιορισμένος. Εαν καθοδηγήσει τη ρουκέτα σε οποιοδήποτε άλλο σημείο εκτός από το στόχο του τότε η ρουκέτα εκρίγνειται, ο συνολικός αριθμός των διαθέσιμων ρουκετών μειώνεται και ο χρήστης καλείται να ξαναπροσπαθήσει το ίδιο επίπεδο.



__**ΔΗΜΙΟΥΡΓΙΑ ΤΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ -** **SPRITES** **ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ**__ //Δημιουργία του βασικού σκηνικού του παιχνιδιού ://



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

//Δημιουργία του ανθρώπου κεντρικό χαρακτήρα του παιχνιδιού ://



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

//Δημιουργία της ρουκέτας, αντικείμενο που χειρίζεται ο παίκτης στο παιχνίδι ://



Ο χρήστης του Scratch έχοντας στη διάθεσή του τα εργαλεία της ζωγραφικής, δημιουργεί το βασικό αντικείμενο το οποίο θα καθοδηγεί καθ'όλη τη διάρκεια των επιπέδων του παιχνιδιού με τη χρήση του ποντικιού.

//Δημιουργία του// //αντικειμένου της έκρηξης της ρουκέτας του παιχνιδιού ://



Ο χρήστης του Scratch έχοντας στη διάθεσή του τα εργαλεία της ζωγραφικής, δημιουργεί το sprite (εικονίδιο) της έκρηξης της ρουκέτας όταν προσκρούσει σε κάποιο σημείο μέσα στο βασικό σκηνικό του παιχνιδιού.

//Δημιουργία του όπλου του παιχνιδιού ://



Ο χρήστης του Scratch έχοντας στη διάθεσή του τα εργαλεία της ζωγραφικής, δημιουργεί το sprite (εικονίδιο) του όπλου το οποίο κρατάει το ανθρωπάκι το οποίο χειρίζεται και από το οποίο εκτοξεύεται η ρουκέτα.

__**ΛΕΙΤΟΥΡΓΙΑ ΠΟΥ ΕΚΤΕΛΕΙ ΚΑΘΕ** **ΑΝΤΙΚΕΙΜΕΝΟ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ**__

· Όταν ο παίκτης φέρει το ποντίκι στην επιτρεπόμενη θέση που του ορίζει το παιχνίδι με το αντίστοιχο εικονίδιο του κόκκινου κύκλου που εμφανίζεται, τότε του δίνεται η δυνατότητα να επιλέξει τη κλίση της γωνίας εκτόξευσης της ρουκέτας από το όπλο ανάλογα με το ύψος στο οποίο θα θέσει το ποντίκι. Όταν λοιπόν βεβαιωθεί πως είναι τα πάντα σωστά και κάνει κλικ, από το όπλο εκτοξεύεται μία ρουκέτα και το όπλο αλλάζει μορφή. Η ρουκέτα που εκτοξεύεται αρχίζει να κινείται προς την ίδια κατεύθυνση με την οποία μετακινούμε το ποντίκι.



· Όταν η ρουκέτα προσκρούσει σε οποιοδήποτε σημείο στο παιχνίδι, τότε καταστρέφεται. Αν το σημείο στο οποίο θα χτυπήσει είναι το ανθρωπάκι – στόχος τότε πάλι καταστρέφεται, σκοτώνει το ανθρωπάκι και το παιχνίδι αλλάζει επίπεδο. Αν δεν χτυπήσει το ανθρωπάκι και χτυπήσει κάπου αλλού καταστρέφεται, ο συνολικός αριθμός των ρουκετών μειώνεται κατά ένα και ο παίκτης πρέπει να ξαναπροσπαθήσει το ίδιο επίπεδο.





· Χαρακτηριστικά που αναφέρονται στο χαρακτήρα του παίκτη.



· Χαρακτηριστικά που αναφέρονται στο ανθρωπάκι – στόχο. Αν η ρουκέτα το χτυπήσει, τότε αυτό αλλάζει μορφή για κάποιο συγκεκριμένο χρονικό διάστημα και στη συνέχεια το παιχνίδι πηγαίνει στο επόμενο επίπεδο.



**__ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ (__****__SPRITES__****__)__**


 * 1)** Κεντρικός χαρακτήρας του παιχνιδιού « το ανθρωπάκι που ανήκει αρχικά στον παίκτη »



Ο παίκτης αρχικά με το ποντίκι χειρίζεται το όπλο το οποίο κρατάει το ανθρωπάκι και από το οποίο εκτοξεύονται οι ρουκέτες. Ανάλογα με τη θέση που θα βρίσκεται το ποντίκι, διαφοροποιείται η θέση του ύψους του όπλου από το οποίο θα ξεκινήσει η εκτόξευση της ρουκέτας.

Σενάριο για το ανθρωπάκι με το όπλο : Όταν ο παίκτης κάνει κλικ, τότε από το όπλο που κρατάει το ανθρωπάκι εκτοξεύεται μία ρουκέτα και το ανθρωπάκι παραμένει ακίνητο στις συντεταγμένες στις οποίες βρισκόταν όταν ξεκίνησε η εκτόξευση έως ότου η ρουκέτα να εκραγεί. Στη συνέχεια αφού η ρουκέτα εκραγεί επανέρχεται στην προηγούμενη κατάσταση έτσι ώστε να ξαναπαίξει ο χρήστης.


 * 2)** « Το ανθρωπάκι το οποίο αποτελεί το στόχο »



Το δεύτερο ανθρωπάκι το οποίο αποτελεί το στόχο στον οποίο πρέπει να φτάσει η ρουκέτα, μένει ακίνητο καθ όλη τη διάρκεια του παιχνιδιού. Αν η ρουκέτα χτυπήσει οπουδήποτε αλλού εκτός από το ανθρωπάκι η μορφή του δεν αλλάζει. Η κατάσταση του αλλάζει μόνο εάν η ρουκέτα το χτυπήσει και τότε αλλάζει και μορφή.



Το ανθρωπάκι αφού χτυπηθεί από τη ρουκέτα παίρνει αυτή τη μορφή για κάποιο συγκεκριμένο χρονικό διάστημα και το παιχνίδι οδηγείται στο επόμενο επίπεδο.

Σενάριο για το ανθρωπάκι που αποτελεί το στόχο :

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


 * 3)** « Η ρουκέτα »



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


 * //Οι μορφές τις οποίες παίρνει είναι οι ακόλουθες ://**









Οι μορφές αυτές αποτελούν τα sprites τα οποία παίρνει σταδιακά η ρουκέτα κατά τη διάρκεια της έκρηξής της.Αυτά είναι σχεδιασμένα από το δημιουργό του παιχνιδιού με τη χρήση των εργαλείων της ζωγραφικής.

Σενάριο για τη ρουκέτα : Αρχικά ο παίκτης ξεκινάει με συγκεκριμένο αριθμό ρουκετών (30). Η διεύδυνση της πορείας της κάθε ρουκέτας καθορίζεται από την κατεύθυνση στην οποία μετακινεί ο χρήστης το ποντίκι.Έτσι λοιπόν αυτός επιλέγει τον προορισμό στον οποίο θα χτυπήσει η ρουκέτα.Κατά τη διάρκεια του παιχνιδιού και ανάλογα με τα επίπεδα-levels στα οποία βρίσκεται ο παίκτης, ο αριθμός από τις ρουκέτες που έχει στη διάθεση του μειώνεται.Ακόμα ο αριθμός των διαθέσιμων ρουκετών μειώνεται σε οποιαδήποτε περίπτωση, δηλαδή είτε η ρουκέτα χτυπήσει επιτυχημένα το στόχο-ανθρωπάκι, είτε χτυπήσει και εκραγεί σε οποιοδήποτε άλλο σημείο του σκηνικού. Επιπλέον, μετά από ένα συγκεκριμένο χρονικό διάστημα η ρουκέτα εκρήγνυται είτε προσκρούσει κάπου είτε όχι. Κατά τη διάρκεια της έκρηξής της η ρουκέτα αλλάζει μορφές ώσπου να καταστραφεί πλήρως και να χαθεί από το σκηνικό.




 * 4)** « Το όπλο που εκτοξεύει τις ρουκέτες »



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

Σενάριο για το όπλο που εκτοξεύει τις ρουκέτες :

Η μορφή-ενδυμασία του όπλου αλλάζει ανάλογα με την κατεύθυνση που θα επιλεχθεί από τον χρήστη. Όταν ο παίκτης ξεκινήσει το παιχνίδι το όπλο είναι έτοιμο να εκτοξεύσει μία ρουκέτα αρκεί να γίνει κλικ από τον παίκτη έτσι ώστε να δοθεί η εντολή.Μόλις ο παίκτης κάνει κλικ από το όπλο εκτοξεύεται μία ρουκέτα και ακούγεται ο αντίστοιχος ήχος που έχει οριστεί.

**__ΗΧΟΙ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝΤΑΙ ΣΤΟ ΠΑΙΧΝΙΔΙ__**


 * //Δυνατότητα επιλογής ή μη ήχου στο παιχνίδι ://**

Α) Περίπτωση στην οποία ο παίκτης επιλέγει να υπάρχουν οι ήχοι κατά τη διάρκεια του παιχνιδιού.



Β) Περίπτωση στην οποία ο παίκτης επιλέγει να μην υπάρχουν οι ήχοι κατά τη διάρκεια του παιχνιδιού.



Σενάριο για τη λειτουργία του ήχου :

Δίνεται η δυνατότητα στον παίκτη να επιλέξει εάν επιθυμεί ή όχι τους ήχους κατά τη διάρκεια του παιχνιδιού. Όταν ο παίκτης κάνει κλικ στο εικονίδιο-sprite του ήχου ‘Music’ τότε οι ήχοι του παιχνιδιού σταματούν να παίζουν και η μορφή του εικονιδίου αλλάζει. Εάν επιθυμεί να τους επαναφέρει αρκεί να ξανακάνει κλικ στο εικονίδιο-sprite του ήχου ‘Music’ έτσι ΄ςστε να επαναφέρει τους ήχους και το sprite των ήχων να αλλάξει και πάλι μορφή. Έτσι λοιπόν, ανάλογα με την επιλογή του παίκτη το sprite του ήχου αλλάζει μορφή.


 * //Οι ήχοι που περιλαμβάνει το παιχνίδι είναι ://**

1)

Ο ήχος αυτός ακούγεται σε όλη τη διάρκεια του παιχνιδιού, ακόμα και όταν ο παίκτης μεταβιβάζεται στα επόμενα επίπεδα-levels.

2) Ο ήχος αυτός ακούγεται μόνο στις περιπτώσεις στις οποίες η ρουκέτα εκρήγνυται σε οποιοδήποτε σημείο του σκηνικού.

**//Στατιστικά Στοιχεία// που αναφέρονται σε δεδομένα του παιχνιδιού και εμφανίζονται σε όλη τη διάρκειά του στο πάνω μέρος της οθόνης.**

 * 1) [[image:levels.jpg]]

Στο εικονίδιο αυτό αναγράφεται το επίπεδο-level στο οποίο βρίσκεται ο παίκτης.

2.

Στο εικονίδιο αυτό αναγράφεται ο αριθμός των ρουκετών που έχει στη διάθεσή του ο παίκτης.

3.

Το εικονίδιο αυτό αποτελεί τον χρονομετρητή όπου αναγράφεται ο χρόνος παιχνιδιού του παίκτη.

= __**Κώδικας Παιχνιδιών**__ =

Παρακάτω, μπορείτε να βρείτε τον κώδικα για καθένα από τα παιχνίδια που παρουσιάστηκαν :

1ο ΠΑΙΧΝΙΔΙ SUPER PONG 2:


 * 2ο ΠΑΙΧΝΙΔΙ**

**Mini Race 2**
 * [[file:Mini Race 2a.sb]] **(απλή έκδοση)**
 * [[file:Mini Race 2b.sb]]**(έκδοση με μερικές επεκτάσεις (εμπόδια + ειδοποιήσεις με ήχους))**
 * [[file:Mini Race 2b.sb]]**(έκδοση με μερικές επεκτάσεις (εμπόδια + ειδοποιήσεις με ήχους))**