17. Δημιουργώντας ακόμη ένα παιχνίδι (Υ)

Ομάδα Διαδικτυακών πόρων


Προτεινόμενοι σύνδεσμοι :


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

2.http://www.edutorials.gr/scratch-tutorials Σε αυτόν το σύνδεσμο θα βρείτε εκπαιδευτικά βίντεο που αφορούν στην
εισαγωγή στο περιβάλλον του Scratch, τις εντολές κίνησης και κατεύθυνσης που βοηθούν τους χρήστες να αποσαφηνίσουν τη λειτουργία εντολών με δικά τους παραδείγματα.
Περιλαμβάνεται παράδειγμα δημιουργίας ιπτάμενου χαρακτήρα.

3.http://scratch.mit.edu/galleries/view/293
Περιλαμβάνει μερικά από τα νεότερα έργα-projects που αφορούν στο Scratch.

4.http://www.redware.com/scratch/fish.html
Σε αυτόν το σύνδεσμο περιέχεται ένα παράδειγμα παιχνιδιού με κύριο χαρακτήρα ένα καρχαρία που περιπλανέται στην οθόνη τρώγοντας ψάρια αποφεύγοντας παράλληλα εκείνα που θα τον κάνουν να χάσει στο παιχνίδι.

5.http://users.soe.ucsc.edu/~karplus/scratch_programs/
{Σε αυτό το site υπάρχουν πολλά ενδιαφέροντα παιχνίδια όπως το bouncing ball, το τέννις κ.α.}

6..http://www.instructables.com/id/Programming-the-Racing-Game-in-Scratch/
{Περιγραφή step by step του Racing game στο Scratch. Αναφέρει ου μπορούμε να βρούμε αυτό το παιχνίδι και
στη συνέχεια περιγράφει κάθε σημείο του κώδικα και τη λειτουργικότητα του}

7.http://wiki.classroom20.com/file/view/game+design+planner.pdf
Eνδιαφέρον φύλλο εργασίας με ερωτήσεις για το πώς κατασκευάζω ένα παιχνίδι

8.http://nebomusic.net/scratch.html
Ενα πολύ ενδιαφέρον site το οποίο περιέχει αποκλειστικά παιχνίδια στο Scratch (Aναλυτικότερη περιγραφή για τα παιχνίδια που περιέχει στη σελίδα των συνδέσμων).

9.http://pages.cs.wisc.edu/~dusseau/catapult.html
Ένας σύνδεσμος με ενδιφέρουσες δραστηριότητες στο Scratch. Μερικα από αυτά είναι το name glide (τα γράμματα του ονόματος μας στριφογυρίζουν στη σκηνή, αφήνοντας πίσω τους μια γραμμή)- (περιέχει κυρίως ενολές αλλαγής της σκηνής, κίνησης και τυχαιότητας), το catch those letters (προσπαθούμε να πιάσουμε τα γράμματα του ονόματος μας που κινούνται στη σκηνή)-(οι παραπάνω εντολές εμπλουτίζονται με εντολές αισθητήρων). Στη συνέχεια αναλύει σε τρεις ενότητες το παιχνίδι cathimg bananas (ένα αντικείμενο προσπαθεί να πιάσει άλλα αντικείμενα που κινούνται στη σκηνή)-(είναι ένα ολοκληρωμένο παιχνίδι, περιέχει σχεδόν όλες τις εντολές του Scratch και χρησιμοποιεί και μεταβλητές (μετρητές)), στην επόμενη ενότητα προσθέτονται επιπλέον εμπόδια και στη τελευταία περιγράφεται πως τεματίζουμε το παιχνίδι (χρησιμοποίηση και χρονομέτρου).

10.http://www.scribd.com/doc/15602781/Mini-Scratch-Unit
Ένα βίντεο μιας παρουσίασης σχετικά με το Scratch. Πάνω στο project (κινούμενη γάτα- the cat walk) δείχνει απλές κινήσεις, επαναλαμβανόμενες κινήσεις (forever), περπάτημα της γάτας και άλλαγμα κουστουμιού, χρησιμοποίηση του πληκτρολογίου για τιν έλεγχο της γάτας (μαζί με την if και forever-if), περπάτημα της γάτας μέσω πληκτρολογίου (αισθητήρες και forever-if). Τέλος, παρουσιάζει κάποιους κανόνες που πρέπει να ακολουθούμε για τη κατασκευή παιχνιδιού και παρουσιάzει κάποια γνωστά μας παιχνίδια, όπως το pac-man και το pong προτείνοντας προεκτάσεις που μπορούμε να κάνουμε σε αυτά (π.χ. να προσθέσουμε ήχο, επιπλέον χαρακτήρες, μετρητές για τη μέτρηση του σκόρ).

11.http://www.howardism.org/Technical/Scratch/Tutorials/index.html
Ένα tutorial από τον Howard Abrams. Περιέχει και οδηγίες δημιουργίας ενός απλού παιχνιδιού.Περιέχει κάποια μαθήματα για τις θεματικές ενότητες (Εισαγωγή,πως κατευάζω το Scratch,το πρώτο μου project,φτιάχνω μουσική, συνομιλία μεταξύ των sprites, Kίνηση των sprites,broadcasting, πως φτιάχνω ένα παιχνίδι βήμα-βήμα). Κάθε μάθημα το συνδυάζει με την περιγραφή ενός απλού project.

12.http://llk.media.mit.edu/projects.php?id=783
Ο συγκεκριμένος σύνδεσμος τονίζει τη σημαντικότητα του Scratch ως ενός εργαλείου-περιβάλλοντος που παρέχει ένα πολύ γλαφυρό τρόπο αναπαράστασης των προγραμματιστικών εννοιών στα μικρά παιδιά. Επιπλέον, παραθέτει μια σειρά από συνδέσμους που παραπέμπουν σε αντίστοιχα projects για τη δημιουργία παιχνιδιών.

13.http://dia-installer.de/index_en.html
Δωρεάν λογισμικό για δημιουργία εννοιολογικών χαρτών και γράφων.


14.http://scratch.mit.edu/projects/Deweybears/20922 Ένα project παιχνιδιού αρκετά ενδιαφέρον και μεγάλο δείχνει τις ικανότητες του scratch τη πραγματοποιήση πολύπλοκων παιχνιδιών.


Blogs





17. Δημιουργώντας ακόμη ένα παιχνίδι (Paintball)
Μαθησιακοί στόχοι
Να κατανοούν τη χρησιμότητα καθεμιάς από τις παλέτες του scratch.
Να είναι σε θέση να προγραμματίσουν το δικό τους παιχνίδι.
Να επιλέγουν τις σωστές εντολές για να επιτύχουν το στόχο/πρόγραμμα.
Να αναλύουν σενάρια χρήσης όλων των εντολών που διδάχθηκαν στο scratch.
Χαρακτηριστικά
Ο μαθητής έχει πλέον διδαχθεί όλες τις δυνατές εντολές του scratch, και τώρα καλείται να τις συνθέσει όλες μαζί αποδοτικά για να παράγει το δικό του πρόγραμμα.
Παραδείγματα
Στο κεφάλαιο αυτό ο μαθητής καλείται να δημιουργήσει την ολοκληρωμένη εφαρμογή που αντιστοιχεί στο παιχνίδι Paintball, μέσα από το περιβάλλον του scratch.
Περιγραφή παιχνιδιού: Η πλατφόρμα του παιχνιδιού αποτελείται από ένα σκηνικό μονόχρωμου φόντου, στο οποίο εισέρχονται σε τυχαίες χρονικές στιγμές και με τυχαίες κατευθύνσεις οι ήρωες του παιχνιδιού, και εξέρχονται όταν φτάσουν στα όρια του σκηνικού. Οι ήρωες είναι σχήματος μπάλας. Ο παίκτης καλείται με το ποντίκι να σημαδέψει μία κινούμενη μπάλα με σκοπό να την πετύχει, ρίχνοντας της κόκκινο χρώμα και εξαφανίζοντας την από το σκηνικό.Σε κατάλληλη μεταβλητή αποθηκεύεται και ανανεώνεται η τιμή των κερδισμένων πόντων του παίκτη. Η διαδικασία είναι επαναληπτική.


Κεφάλαιο 17


Δημιουργώντας μερικά παιχνίδια ακόμα!

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

---

1.1 Σκοποβολή

1.2 Fish

1.3 Pacman

1.4 Πέτρα - Ψαλίδι - Χαρτί

---

"You have to learn the rules of the game. And then you have to play better than anyone else."
"Θα πρέπει να μάθεις τους κανόνες του παιχνιδιού. Και μετά πρέπει να παίξεις καλύτερα από οποιονδήποτε άλλον."

( Albert Einstein )

Περιγραφή

Ας δούμε πως θα μπορέσετε να φτιάξετε ένα παιχνίδι σκοποβολής! Είναι ένα παιχνίδι αντανακλαστικών και ακρίβειας!
Στο παιχνίδι θα υπάρχουν στόχοι οι οποίοι θα κινούνται από το ένα άκρο της οθόνης μέχρι το άλλο. Αρχικά ο παίκτης θα κληθεί να καθορίσει το βαθμό δυσκολίας του παιχνιδιού ο οποίος αυξάνεται κάνοντας τους στόχους να πηγαίνουν γρηγορότερα. Ο παίκτης θα παίζει με το ποντίκι και θα προσπαθεί να πετύχει τους κινούμενους στόχους. Αν καταφέρει να βρει στόχο, ο στόχος εκρηγνύεται, ακούγεται σχετικός ήχος και το σκορ, το οποίο κρατάται σε μία μεταβλητή αυξάνει. Σε διαφορετική περίπτωση απλά ακούγεται κάποιος άλλος σχετικός ήχος. Η διάρκεια του παιχνιδιού περιορίζεται σε 60'' με το χρονόμετρο.
Στιγμιότυπο του παιχνιδιού:screenshot.jpg
Ας ξεκινήσουμε να το σχεδιάζουμε.

Σχεδιασμός

Διαδικασία σκέψης

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


_παιχνιδιού3.jpeg


Σκηνικό

Υπόβαθρα
Το σκηνικό μας θα έχει δύο υπόβαθρα!
  1. Την αρχική οθόνη υποδοχής του παίκτη, στην οποία θα ορίζεται ο βαθμός δυσκολίας του παιχνιδιού.Η αρχική οθόνη θα καλωσορίζει τον παίκτη και θα του ζητάει να εισάγει ένα γράμμα e (easy), m (medium), h (hard), για να ορίσει το βαθμό δυσκολίας του παιχνιδιού. Μπορείτε πολύ εύκολα να ζωγραφίσετε το υπόβαθρο στη ζωγραφική. Το αποτέλεσμα θα πρέπει να είναι κάπως έτσι:kalws.jpeg
  2. Την οθόνη στην οποία θα εμφανίζονται οι στόχοι μας και η οποία θα είναι απλά μονόχρωμη για να είναι ευδιάκριτοι οι στόχοι.

Ήχος
Το σκηνικό μας θα έχει έναν ήχο ο οποίος θα ακούγεται όταν ο παίκτης πατήσει πάνω στην οθόνη, δηλαδή όταν αποτυγχάνει να χτυπήσει κάποιο στόχο. Πρέπει να είναι ένας σύντομος ήχος για να μπορεί αν ο χρήστης κάνει επαναλαμβανόμενα κλικ στην οθόνη να μην επικαλύπτει ο ένας ήχος τον άλλο. Στο παράδειγμά μας θα χρησιμοποιήσουμε τον ήχο WaterDrop από τους έτοιμους ήχους του scratch από το φάκελο effects.

Σενάρια

  1. Χρειαζόμαστε ένα σενάριο για να καλύψουμε την περίπτωση που ο παίκτης κάνει κλικ στην οθόνη και ακούγεται ο ήχος μας. Χρησιμοποιείστε την εντολή ελέγχου όταν στο σκηνικό γίνει κλίκ και κουμπώστε την εντολή soundwater.JPG. Το σενάριο μας είναι έτοιμο. Δοκιμάστε να κάνετε κλικ πάνω στην οθόνη.

  2. Επίσης χρειαζόμαστε ένα σενάριο για να ορίσουμε τους κανόνες του παιχνιδιού: σκορ, διάρκεια, αρχή παιχνιδιού, βαθμός δυσκολίας και τέλος παιχνιδιού. Το σενάριο θα γραφτεί στο σκηνικό, και όχι στα αντικείμενα, για να έχει αντίκτυπο σε όλα τα αντικείμενα.
    Ξεκινώντας λοιπόν το παιχνίδι θέλουμε η οθόνη να έχει μόνο το αρχικό υπόβαθρο που σχεδιάσαμε και να ζητάει από το χρήστη να ορίσει τη δυσκολία του παιχνιδιού. Τη δυσκολία θα την ορίσουμε χρησιμοποιώντας μια μεταβλητή time.JPG(κοινή), την οποία θα δημιουργήσετε από την παλέτα μεταβλητών, και την οποία θα θέσετε, αργότερα, ως όρισμα στην εντολή ομαλής κίνησης στους στόχους μας. Η μεταβλητή αυτή θα ορίζει το χρόνο σε δευτερόλεπτα στον οποίο θα καλύψει ένα αντικείμενο μας την απόσταση που θα του ορίσουμε. Όσο μικρότερη η τιμή της τόσο πιο γρήγορα θα μετακινούνται οι στόχοι μας, τόσο δυσκολότερο θα είναι το παιχνίδι. Μιας και δεν αφορά τον παίκτη αφαιρέστε την από την οθόνη του παιχνιδιού.Χρησιμοποιείστε λοιπόν την εντολή ελέγχου enarksi.JPGκαι αμέσως μετά την εντολή allakse_arxiki.JPG, για να πάρει το υπόβαθρο καλωσορίσματος. Κατόπιν, για να πάρετε την απάντηση από τον παίκτη, χρησιμοποιήστε την εντολήaskwait.JPG με όρισμα "Δυσκολία παιχνιδιού:". Την answer.JPG που πήραμε ως είσοδο από τον παίκτη, και η οποία βρίσκεται στην παλέτα αισθητήρων χρησιμοποιήστε τη, με την κατάλληλη μεταβλητή ελέγχου, για να ορίσετε την τιμή της time.JPG. Χρησιμοποιήστε λοιπόν entolif.JPG με όρισμα έναν τελεστή ισότητας equal.JPG, ο οποίος ελέγχει την τιμή της answer.JPG. Ανάλογα λοιπόν με την απάντηση θα ορίσετε και την τιμή στην μεταβλητή μας, με την εντολή settime.JPG. Η αντιστοιχία απάντησης - time είναι:
    • easy: e - 2,5
    • medium: m - 2
    • hard: h - 1,5
    Γι' αυτό το σκοπό θα χρειαστείτε τρεις εντολές entolif.JPGγια να καλύψετε και τις τρεις περιπτώσεις την μια μετά την άλλη, ορίζοντας κάθε φορά την time.JPGμε την αντίστοιχη τιμή. Πρέπει να λάβετε υπόψιν σας την περίπτωση που ο παίκτης δώσει διαφορετική τιμή από τις e,m,h. Για να ελέγξετε αυτήν την περίπτωση θα πρέπει να χρησιμοποιήσετε μια εντολή επανάληψης για να ζητήσετε από τον παίκτη να εισάγει μια άλλη έγκυρη τιμή. Θα χρησιμοποιήσετε την dountil.JPG, η οποία θα εσωκλείει την ερώτηση προς το χρήστη και τους τρεις ελέγχους εάν. Η εντολή θα λάβει ως όρισμα έναν τελεστή ο οποίος θα ελέγχει αν η answer.JPGείναι ίση με: e ή m ή h, που σημαίνει πως θα πρέπει να συνδυάσετε δύο τελεστές or.JPG σε έναν με αυτό το αποτέλεσμα: oror.JPG. Ο καινούριος αυτός τελεστής θα πάρει ως ορίσματα τελεστές ισότητας equal.JPG, οι οποίοι με τη σειρά τους θα πάρουν ως πρώτο όρισμα την answer.JPG και ως δεύτερο τις έγκυρες τιμές.
    Το αποτέλεσμα αυτού του εγχειρήματος θα είναι:
    wow.JPG
    Αφού τελειώσαμε με τον ορισμό του βαθμού δυσκολίας του παιχνιδιού θα συνεχίσουμε με τον ορισμό των υπόλοιπων συνθηκών του παιχνιδιού: το σκορ, και τη διάρκεια του.

    Το σκορ πρέπει να κρατηθεί σε μία μεταβλητή κοινή για τα αντικείμενα, την οποία δημιουργείτε στην παλέτα μεταβλητών. Αυτή η μεταβλητή θα αυξάνεται κατά 1 κάθε φορά που ο παίκτης κάνει κλικ σε ένα αντικείμενο. Το σκορ, στην αρχή του παιχνιδιού, πρέπει να είναι 0. Για να το πετύχετε αυτό κουμπώστε την εντολή set.JPG στη συνέχεια του σεναρίου μας.

    Μία άλλη συνθήκη που πρέπει να αρχικοποιήσετε είναι το χρονόμετρό μας. Ενεργοποιείστε το χρονόμετρο από την παλέτα αισθητήρων για να εμφανιστεί στην οθόνη και στη συνέχεια προσθέστε και την εντολή zerotime.JPG έτσι ώστε να ξεκινήσει να μετράει ο χρόνος από τη στιγμή που θα ξεκινήσει το παιχνίδι.

    Αφού αρχικοποιήσαμε τις συνθήκες μας πρέπει να αλλάξετε το υπόβαθρο και να δώσετε σήμα για να ξεκινήσει το παιχνίδι.
    Η αλλαγή υπόβαθρου επιτυγχάνει αν προσθέσετε την εντολή changeto.JPG, ενώ για να ξεκινήσει το παιχνίδι και να ενεργοποιηθούν τα σενάρια των αντικειμένων, που θα δημιουργήσετε αμέσως μετά, μεταδώστε ένα σήμα "start" με την εντολή metedwsestart.JPG. Με το ίδιο σκεπτικό πρέπει να μεταδώσετε κι ένα σήμα "end", έτσι ώστε με το που τελειώσει το παιχνίδι τα αντικείμενά να εξαφανιστούν από την οθόνη. Το παιχνίδι θα διαρκέσει 60''. Για να το ελέγξετε αυτό, θα πρέπει, πριν μεταδώσετε το "end" να περάσουν 60''. Γι' αυτό μετά το "start" και πριν το "end" τοποθετείστε μια εντολή waituntill.JPG με όρισμα έναν τελεστή less.JPG, ο οποίος παίρνει όρισμα το χρονόμετρο. Θέλουμε, όσο η ένδειξη του χρονομέτρου είναι μικρότερη του 60, να συνεχίζεται το παιχνίδι. Έτσι με τον 60''.JPG ελέγχετε πότε το χρονόμετρο θα υπερβεί τα 60'', και τον κουμπώνετε στην παραπάνω εντολή ελέγχου. Τέλος αφού μεταδώσουμε και το "end" τερματίζουμε το σενάριο και το παιχνίδι με την εντολή endall.JPG.


Αντικείμενα

Τα αντικείμενά θα είναι οι στόχοι που θα προσπαθεί ο παίκτης να πετύχει. Μπορείτε να επιλέξετε τους στόχους από τους ήδη έτοιμους, να εισάγετε δικούς σας από εικόνες είτε να δημιουργήσετε τις δικές σας φιγούρες με το εργαλείο της ζωγραφικής που διαθέτει η παλέτα δημιουργίας αντικειμένων.
Στο παράδειγμά μας για ευκολία θα χρησιμοποιήσουμε τις μπάλες που μας δίνονται έτοιμες στο φάκελο "things"! Θα χρειαστείτε αρκετές μπάλες γι' αυτό διπλασιάστε τα αντικείμενά σας!
sprites.JPG
Συνδέοντας με προηγούμενα κεφάλαια κάθε μπάλα είναι μια οντότητα, ένα αντικείμενο με ορισμένα χαρακτηριστικά.
Θα δημιουργήσετε στην ουσία ένα αντικείμενο, του οποίου τα χαρακτηριστικά και οι λειτουργίες θα είναι ίδια και για τα υπόλοιπα 9.


Ενδυμασίες
Το αντικείμενό μας θα έχει δύο ενδυμασίες:
  1. Την αρχική ενδυμασία, η οποία έχει προκαθορισμένο όνομα όταν επιλέγεις την εικόνα από τον φάκελο. Από δω και πέρα θα αναφερόμαστε σ' αυτήν την ενδυμασία με αυτό το όνομα.
  2. Την ενδυμασία έκρηξης, την οποία θα ονομάσουμε mpoum, και την οποία θα δημιουργήσετε στην ζωγραφική! Δεν είναι δύσκολο! Το αποτέλεσμα θα είναι κάτι τέτοιο:
    mpoummmm.JPG
    mpoummmm.JPG
    . Για να αποκτήσουν όλα τα αντικείμενα αυτήν την ενδυμασία σύρετε το εικονίδιό της πάνω στο εικονίδιο καθενός από τα άλλα αντικείμενα.

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

Σενάρια
  1. Σενάριο αρχικοποίησης:
    Το σενάριο αυτό θέλουμε να εξαφανίζει όλα τα αντικείμενα από την οθόνη όταν ξεκινάει το παιχνίδι, άρα θα ενεργοποιηθεί όταν πατηθεί το πλήκτρο εκκίνησης. Θα χρησιμοποιήσετε την εντολή
    hide.JPG
    hide.JPG
    αφού πατηθεί το πλήκτρο εκκίνησης, δηλαδή μετά την εντολή ελέγχου
    enarksi.JPG
    enarksi.JPG
    . Έτσι όλα τα αντικείμενα θα σβήσουν από την οθόνη. Για να ισχύει το σενάριο για κάθε αντικείμενο σύρτε το στο εικονίδιο καθενός από τα υπόλοιπα αντικείμενα. Σύρετε το σενάριο στο εικονίδιο καθενός από τα αντικείμενα.

  2. Σενάριο κίνησης:
    Το σενάριο αυτό θα ενεργοποιηθεί όταν το σκηνικό μεταδώσει το σήμα "start", όταν δηλαδή έχει οριστεί ο βαθμός δυσκολίας και θα περιγράφει την κίνηση των αντικειμένων μας. Γι' αυτό το σενάριο θα ξεκινάει με την εντολή
    receivestart.JPG
    receivestart.JPG
    . Κατόπιν για να αποδώσετε την έννοια της τυχαιότητας, και για να μην εμφανιστούν όλα τα αντικείμενα ταυτόχρονα στο σκηνικό, θα πρέπει πριν εμφανιστεί το κάθε αντικείμενο να περιμένει για ένα τυχαίο χρονικό διάστημα. Επιλέξτε γι' αυτό το σκοπό την εντολή
    waitsec.JPG
    waitsec.JPG
    στην οποία πρέπει τα δευτερόλεπτα να είναι ένας τυχαίος αριθμός έστω από 1 έως 5. Για να το πετύχετε αυτό επιλέξτε από την παλέτα τελεστών τον τελεστή
    random15.JPG
    random15.JPG
    .
    Στη συνέχεια πρέπει να ορίσετε την αρχική θέση που θα πάρει το αντικείμενο αφού τελειώσει η αναμονή του.
    Το αντικείμενο θα ξεκινάει πάντα από το αριστερό ή το δεξιό άκρο του σκηνικού και θα καταλήγει στο απέναντι. Επίσης για λόγους συμμετρίας τα μισά αντικείμενα θα ξεκινούν από τα αριστερά και τα άλλα μισά από τα δεξιά.
    Για να το πετύχετε αυτό θα χρησιμοποιήσετε την εντολή
    gotoxy.JPG
    gotoxy.JPG
    από την παλέτα κίνησης. Για τα αντικείμενα που θα ξεκινούν από τα αριστερά, όταν αντιγράψετε το σενάριο στα υπόλοιπα αντικείμενα, θα επιλέξτε x=-250 (αριστερό όριο) και για αυτά που ξεκινούν από δεξιά x=250 (δεξί άκρο). Για τον ορισμό του y πρέπει να λάβετε υπόψιν τη σύμβαση της τυχαιότητας που ορίστηκε στην αρχή έτσι ώστε να μην ξεκινάνε τα αντικείμενα από συγκεκριμένο ύψος. Έτσι για y ορίστε πάλι μια εντολή
    random15.JPG
    random15.JPG
    από την παλέτα τελεστών με επιλογή από 200 μέχρι -200 δηλαδή τα πάνω και κάτω όρια αντίστοιχα. Εκεί λοιπόν σε εκείνη την θέση το αντικείμενό σας πρέπει να έχει την αρχική του ενδυμασία γι' αυτό προσθέστε την εντολή
    change.JPG
    change.JPG
    , ή ανάλογα το όνομα της εκάστοτε αρχικής ενδυμασίας του κάθε αντικειμένου, και για να εμφανιστεί
    show.JPG
    show.JPG
    .
    Σκοπός μας τώρα είναι να κινήσουμε το αντικείμενο από το ένα άκρο του σκηνικού στο άλλο. Η στρατηγική που θα ακολουθήσετε είναι η ίδια με αυτή της θέσης μόνο που αυτή τη φορά θα χρησιμοποιήσετε την εντολή
    flowto.JPG
    flowto.JPG
    από την παλέτα κίνησης. Ως πρώτο όρισμα θα χρησιμοποιήσετε τη μεταβλητή
    time.JPG
    time.JPG
    , η τιμή της οποίας ορίστηκε παραπάνω και είναι αυτή η οποία ορίζει το βαθμό δυσκολίας του παιχνιδιού. Ορίστε το x=250 για όσα αντικείμενα επιλέξατε πως θα κινούνται από τα αριστερά προς τα δεξιά και αντίστοιχα x=-250 για τα υπόλοιπα, και ως y ξανά τον τελεστή τυχαίας επιλογής με όρια -200 μέχρι 200. Έτσι το αντικείμενο θα κινηθεί μέχρι την άλλη άκρη του σκηνικού όπου θα πρέπει να εξαφανιστεί με την εντολή
    hide.JPG
    hide.JPG
    . Μ' αυτόν τον τρόπο το αντικείμενο σας θα κινηθεί από το ένα άκρο στο άλλο μία φορά. Για να το κάνει αυτό συνέχεια, στο σενάριό σας θα χρησιμοποιήσετε την εντολή ελέγχου επανάληψης
    forever.JPG
    forever.JPG
    .

    Το τελικό σενάριο θα είναι κάπως έτσι:
    senariokinisis.JPG
    senariokinisis.JPG

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


  3. Σενάριο έκρηξης:
    Το σενάριο αυτό περιγράφει την περίπτωση επιτυχημένης βολής. Θα ξεκινάει με την εντολή
    clicksprite.JPG
    clicksprite.JPG
    , δηλαδή θα ελέγχει την περίπτωση που ο παίκτης κάνει κλικ στο αντικείμενο. Η βολή, ως επιτυχημένη, θα συνοδεύεται από τον ήχο Pop που εισάγαμε παραπάνω και θα ενεργοποιηθεί χρησιμοποιώντας την εντολή
    soundpop.JPG
    soundpop.JPG
    . Κατόπιν προσθέστε την εντολή
    changeboom.JPG
    changeboom.JPG
    έτσι ώστε το αντικείμενό να αλλάξει ενδυμασία και να πάρει την όψη της "έκρηξης", για να εξαφανιστεί 0.5 δευτερόλεπτα αργότερα χρησιμοποιώντας τις εντολές
    combination.JPG
    combination.JPG
    . Τέλος η επιτυχημένη βολή αυξάνει το σκορ κατά 1. Για να το πετύχετε αυτό προσθέστε την εντολή
    ++.JPG
    ++.JPG
    . Σύρετε το σενάριο στο εικονίδιο καθενός από τα αντικείμενα.

  4. Σενάριο τέλους παιχνιδιού:
    Το σενάριο αυτό περιγράφει τη συμπεριφορά των αντικειμένων στο τέλος του παιχνιδιού, δηλαδή τα εξαφανίζει. Ενεργοποιείται όταν ληφθεί το σήμα "end", δηλαδή όταν το χρονόμετρο δείξει 60''. Τα αντικείμενα πρέπει να εξαφανιστούν από την οθόνη. Πολύ απλά θα χρησιμοποιήσετε την εντολή
    hide.JPG
    hide.JPG
    , μετά την εντολή ελέγχου
    receiveend.JPG
    receiveend.JPG
    . Έτσι όλα τα αντικείμενα θα σβήσουν από την οθόνη.
    Για να ισχύσει το σενάριο σε κάθε αντικείμενο σύρτε το στο εικονίδιο καθενός από τα υπόλοιπα αντικείμενα.

Ο κώδικας βρίσκεται εδώ ολοκληρωμένος

ΤΕΛΟΣ




Δημιουργώντας ακόμη ένα παιχνίδι (Fish)

Το παιχνίδι βασίζετε στο link: http://www.redware.com/scratch/fish.html
Σε αυτόν το σύνδεσμο περιέχεται ένα παράδειγμα παιχνιδιού με κύριο χαρακτήρα ένα καρχαρία που περιπλανιέται στην οθόνη τρώγοντας ψάρια αποφεύγοντας παράλληλα εκείνα που θα τον κάνουν να χάσει στο παιχνίδι.

Στο παιχνίδι έχουν προστεθεί κάποιες επιπλέον τροποποιήσεις

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

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

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

Ο καρχαρίας μπορεί να φάει και να κερδίσει βαθμούς μόνο από μερικά είδη ψαριών, και συγκεκριμένα μόνο από τα πιο κάτω:
  • Κίτρινα ψάρια, 1 βαθμό για τον καρχαρία.
  • Μοβ ψάρια 3 βαθμούς για τον καρχαρία.
  • Χταπόδι 5 βαθμούς για τον καρχαρία.

Κάθε φορά που ο καρχαρίας ακουμπά κόκκινο ψάρι τότε χάνει μια ζωή, αν χάσει και τις 3 ζωές του τότε το παιχνίδι τερματίζεται.

Στόχος του παιχνιδιού είναι ο καρχαρίας να μαζέψει όσο το δυνατό πιο πολλούς βαθμούς.

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

image2.png

Αναλυτική περιγραφή παιχνιδιού


Το παιχνίδι αναλύεται σε δύο φάσεις, στην πρώτη φάση εισάγουμε τις θέσεις που θα αρχικοποιηθεί κάθε αντικείμενο, προσδιορίζουμε την κίνηση κάθε αντικειμένου και προσδιορίζουμε τις μορφές που αλλάζει ανάλογα με τα ερεθίσματα που δέχεται από άλλα αντικείμενα. Για την πρώτη φάση χρησιμοποιούμε εντολές από τις παλέτες "Κίνηση", "Έλεγχος", "Τελεστές", "Όψεις" και "Αισθητήρες". Στην δεύτερη φάση εισάγουμε στο παιχνίδι ήχους και μεταβλητές. Για την δεύτερη φάση χρησιμοποιούμε εντολές από τις παλέτες "Ήχοι" και "Μεταβλητές"


Για να ετοιμάσουμε την παιχνίδι θα πρέπει:
  • Να επιλέξουμε τις κατάλληλες ενδυμασίες για τα αντικείμενα και το κατάλληλο υπόβαθρο για το σκηνικό.
  • Να ορίσουμε θέσεις αρχικοποίησης κάθε αντικειμένου στον χώρο.
  • Να ορίσουμε τις κινήσεις που θα κάνει κάθε αντικείμενο στον χώρο.
  • Να ορίσουμε τις διαστάσεις κάθε αντικειμένου.
  • Να ορίσουμε τις συμπεριφορές κάθε αντικειμένου ανάλογα με τα ερεθίσματα που θα δέχεται από τα άλλα αντικείμενα ή από το σκηνικό.

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

underwater.gif Για ο σκηνικό επιλέγουμε έτοιμη εικόνα "underwater" για υπόβαθρο από τις εικόνες του scratch.

shark1-a.pngΓια τον καρχαρία επιλέγουμε την εικόνα "shark-a", εμφανίζεται πάνω αριστερά στην οθόνη, ελέγχεται από τον πληκτρολόγιο και μπορεί να κινείται μόνο σε τέσσερις διαφορετικές κατευθύνσεις, πάνω κάτω, δεξιά και αριστερά. Ο καρχαρίας μπορεί να φάει μερικά είδη ψαριών όπως κίτρινα ψάρια, μοβ ψάρια και χταπόδια, ενώ το κόκκινο ψάρι όταν τον ακουμπήσει χάνει μια ζωή. Όταν ακουμπήσει ο καρχαρίας κάποιο ψάρι που μπορεί να φάει ή το χταπόδι, αυτός να στρέφεται προς το μέρος του θύματος, να ανοίγει το στόμα του και να το τρώει. Επίσης όταν ένα κόκκινο ψάρι ακουμπήσει τον καρχαρία αυτός αλλάζει μορφή και να επιστρέφει στην αρχική του θέση.


Πιο συγκεκριμένα θέλουμε όταν ο καρχαρίας ακουμπήσει ένα ψάρι, αυτός να στραφεί προς το μέρος του ψαριού, να αλλάξει μορφή σε "shark-b" shark1-b.png και στην συνέχεια να χαθεί το ψάρι που έχει αγγίξει, μετά την κίνηση αυτή ο καρχαρίας να επανέλθει στην κανονική του φυσιολογική του μορφή. Αυτό δείχνει την κίνηση του καρχαρία που τρώει ένα ψάρι. Αφότου φάει το ψάρι ο καρχαρίας, θα πρέπει το ψάρι να επανεμφανίζετε από κάποιες συγκεκριμένες θέσεις μετά από κάποιο χρονικό διάστημα, δίνοντας την αίσθηση ότι τα ψάρια δεν τελειώνουν να υπάρχουν.
Επίσης όταν ακουμπήσει τον καρχαρία το κόκκινο ψάρι αυτός αλλάζει μορφή σε "shark-c" shark1-c.pngκαι χάνει μόνιμα το εφέ του χρώματος του κατά 20 (να φαίνεται πιο αδύνατος) και μετακινείτε στην αρχική του θέση(πάνω-αριστερά), επίσης το κόκκινο ψάρι που ενόχλησε τον καρχαρία, εξαφανίζεται και αυτό και επανέρχεται από συγκεκριμένες θέσεις εκτός από πάνω-αριστερά που θα εμφανιστεί ο καρχαρίας(για τον ίδιο

fish3.pngΓια το κίτρινο ψάρι επιλέγουμε την εικόνα "fish3", εμφανίζεται σε τυχαία θέση στο σκηνικό, άρα δεν χρειάζεται να τους δώσουμε συγκεκριμένες θέσεις αρχικοποίησης. Κινείται συνεχώς από μόνο του με σταθερή ταχύτητα και σε τυχαίες κατευθύνσεις σκηνικό, στην περίπτωση όμως που το ψάρι φτάσει στα όρια πρέπει να αλλάζει κατεύθυνση. Είναι ψάρι το οποίο δίνει 1 βαθμό στον καρχαρία όταν το φάει. Όταν φαγωθεί από τον καρχαρία εξαφανίζεται, και να εμφανίζεται μετά από κάποιο τυχαίο χρονικό διάστημα.

fish2.pngΓια το μοβ ψάρι επιλέγουμε την εικόνα "fish2", εμφανίζεται σε τυχαία θέση στο σκηνικό, άρα δεν χρειάζεται να τους δώσουμε συγκεκριμένες θέσεις αρχικοποίησης. Κινείται συνεχώς από μόνο τους με σταθερή ταχύτητα και σε τυχαίες κατευθύνσεις χώρο. Είναι ψάρι το οποίο δίνει 3 βαθμούς στον καρχαρία όταν το φάει. Όταν φαγωθεί από τον καρχαρία εξαφανίζεται, και να εμφανίζεται μετά από κάποιο τυχαίο χρονικό διάστημα.

fish4.pngΓια το κόκκινο ψάρι επιλέγουμε την εικόνα "fish4", εμφανίζεται σε τυχαίες θέσεις στον χώρο, εκτός από την περιοχή πάνω αριστερά όπου εκεί εμφανίζεται καρχαρίας,(μπορεί να κινείται στην περιοχή πάνω αριστερά, αλλά απαγορεύεται να εμφανιστεί εκεί κατά την εκκίνηση του παιχνιδιού). Εφόσον το κόκκινο ψάρι είναι εκείνο που αν ακουμπήσει τον καρχαρία αυτός χάνει μια ζωή, έτσι αποφεύγουμε να συμβεί το τυχαίο γεγονός, <ο καρχαρίας και το κόκκινο ψάρι κατά την την εκκίνηση του παιχνιδιού να ακουμπούν μεταξύ τους> και να χάσει ο καρχαρίας άδικα ζωή. Κινείται συνεχώς από μόνο του με σταθερή ταχύτητα, πιο γρήγορα από το κίτρινο ψάρι και σε τυχαίες κατευθύνσεις στο χώρο. Όταν ακουμπήσει τον καρχαρία τότε εμφανίζεται οπουδήποτε αλλού εκτός από πάνω αριστερά (θέση καρχαρία).

octopus1-a.pngΤο χταπόδι εμφανίζεται στον χώρο στα κάτω όρια σε τυχαία σημεία του βυθού και κινείται ευθεία προς τα πάνω μέχρι τα πάνω όρια. Στο σχήμα το χταπόδι δεν βλέπει ακριβώς πάνω στην ευθεία αλλά βλέπει πάνω-δεξιά θα πρέπει να αλλάξουμε την κατεύθυνση του, ώστε να βλέπει πάνω, στην ευθεία που θα κινείται. Για να δείξουμε την κίνηση του χταποδιού όταν ανεβαίνει από τον βυθό προς τα πάνω, θα πρέπει με κάποιο τρόπο να φαίνεται ότι σπρώχνει το νερό προς τα κάτω και του δίνεται η ώθηση να ανεβαίνει. Εναλλάσσοντας τις δύο εικόνες του χταποδιού που υπάρχουν έτοιμες στο scratch "octobus1-a" octopus1-b.png και "octobus1-b" octopus1-a.pngκαθώς αυτό κινείται θα πετύχουμε να φαίνεται η κίνηση του χταποδιού. Το χταπόδι δίνει 5 βαθμούς στον καρχαρία όταν το φάει. Όταν φαγωθεί από τον καρχαρία εξαφανίζεται, και να εμφανίζεται μετά από κάποιο τυχαίο χρονικό διάστημα.

fish1-a.gifΓια το μικρό ψάρι επιλέγουμε την εικόνα "fish1-a", είναι για λόγους διακοσμήσεις στο παιχνίδι τριγυρίζει στον βυθό και έχει σταθερή κατεύθυνση (δεξιά και αριστερά) και κινείται με χαμηλή ταχύτητα.

*Προέκταση, μπορείτε αν εισάγετε και άλλα είδη ψαριών.

Υλοποίηση του παιχνιδιού

Οι εικόνες που τοποθετήσαμε στο παιχνίδι μας για τους διάφορους ήρωες είναι πολύ μεγάλες σε σχέση με την συνολική εικόνα.
θα πρέπει να μικρύνουμε αυτές τις διαστάσεις των εικόνων.
Από την παλέτα "Όψεις" και την εντολή ops1.png ορίζουμε κάθε φορά που ξεκινάει το παιχνίδι να μειώνεται το μέγεθος κάθε αντικειμένου, όσο άφορα την διάσταση της εικόνας που έχει σε οποιαδήποτε χρονική στιγμή της διάρκειας του παιχνιδιού.
Για τον καρχαρία μειώνουμε την διάσταση κατά 40%
Για τα κίτρινα ψάρια μειώνουμε την διάσταση κατά 20%
Για τα κόκκινα ψάρια μειώνουμε την διάσταση κατά 15%
Για τα μοβ ψάρια μειώνουμε την διάσταση κατά 20%
Για τα μικρά ψάρια μειώνουμε την διάσταση κατά 10%


Ο καρχαρίας shark1-a.png

Θέση
Εμφανίζεται πάνω αριστερά στην οθόνη. Ελέγχεται από τον πληκτρολόγιο και μπορεί να κινείται μόνο σε τέσσερις διαφορετικές κατευθύνσεις, πάνω κάτω, δεξιά και αριστερά.
Για να πετύχουμε ώστε ο καρχαρίας να εμφανιστεί σε συγκεκριμένο σημείο στην οθόνη από την παλέτα "Κίνηση" εισάγουμε τις εντολέςkin7.png και kin5.pngκαι τις θέσουμε σε x=-200 και y=125 (θέση πάνω αριστερά),
βάζοντας κατεύθυνση 90 φαίνεται σαν να κοιτάει δεξιά, από την παλέτα "Κίνηση" τοποθετούμε την εντολή kin8.png. Έτσι έχουμε τον συνδυασμό εντολών για την αρχικοποίηση της θέσης του καρχαρία:
pic6.png.

Κίνηση
Ο καρχαρίας κινείται με το πάτημα πλήκτρων από το πληκτρολόγιο, πρέπει να αντιστοιχίσουμε την κίνηση με τα κατάλληλα πλήκτρα του πληκτρολογίου μας.
Ο καρχαρίας μπορεί να κινείται μόνο σε τέσσερις διαφορετικές κατευθύνσεις, πάνω κάτω, δεξιά και αριστερά.
Με βάση αυτά, θα πρέπει όταν πατάμε το αντίστοιχο πλήκτρο ο καρχαρίας να κινείτε μερικά βήματα στην αντίστοιχη κατεύθυνση. Με το πάτημα του κάθε πλήκτρου θα πρέπει να εκτελείτε ο κατάλληλος συνδυασμός εντολών, από τις καρτέλες "Έλεγχος" και "Κίνηση".
Από την καρτέλα "Έλεγχος" χρειάζεται για να ελέγχει πιο πλήκτρο έχει πατηθεί και από την καρτέλα "Κίνηση" για να αλλάζει την κατεύθυνση του καρχαρία και για να κινείται ένα συγκεκριμένο αριθμό βημάτων.
pic1.png
Σε κάθε συνδυασμό εντολών για το αντίστοιχο πλήκτρο θα πρέπει η κατεύθυνση που δείχνει ο καρχαρίας να αλλάζει, δηλαδή όταν πατάμε το πάνω βέλος να δείχνει στην κατεύθυνση 0, όταν πατάμε το κάτω βέλος να δείχνει στην κατεύθυνση 180, όταν πατάμε το δεξί βέλος να δείχνει στην κατεύθυνση 90 και όταν πατάμε το αριστερό βέλος να δείχνει στην κατεύθυνση -90. Έτσι ώστε όταν επιχειρήσουμε να κινήσουμε τον καρχαρία, αυτός να κινηθεί στην σωστή πορεία. Για την κίνηση κάθε φορά σε όλες τις περιπτώσεις βάζουμε να κινείτε 5 βήματα.

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


pic2.png

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

Πιο συγκεκριμένα θέλουμε όταν ο καρχαρίας ακουμπήσει ένα ψάρι, αυτός να στραφεί προς το μέρος του ψαριού, να αλλάξει μορφή σε shark1-b.png και στην συνέχεια να χαθεί το ψάρι που έχει αγγίξει, μετά την κίνηση αυτή ο καρχαρίας να επανέλθει στην κανονική του φυσιολογική του μορφή. Αυτό δείχνει την κίνηση του καρχαρία που τρώει ένα ψάρι. Αφότου φάει το ψάρι ο καρχαρίας, πρέπει το ψάρι να επανεμφανίζετε από κάποιες συγκεκριμένες θέσεις μετά από κάποιο χρονικό διάστημα, δίνοντας την αίσθηση ότι τα ψάρια δεν τελειώνουν να υπάρχουν.
Επίσης όταν ακουμπήσει τον καρχαρία το κόκκινο ψάρι αυτός αλλάζει μορφή, χάνει εφέ του χρώματος του κατά 20 (να φαίνεται πιο αδύνατος) και μετακινείτε στην αρχική του θέση(πάνω-αριστερά), επίσης το κόκκινο ψάρι που ενόχλησε τον καρχαρία, εξαφανίζεται και αυτό και επανέρχεται από συγκεκριμένες θέσεις εκτός από πάνω-αριστερά που θα εμφανιστεί ο καρχαρίας(για τον ίδιο λόγο που προαναφέραμε).


Με την βοήθεια της παλέτας "Έλεγχος", "Αισθητήρες" και "Όψεις" θα εκπληρώσουμε αυτούς τους πιο πάνω περιορισμούς.
Από την παλέτα "Αισθητήρες" και την συνθήκη sens1.png ενσωματωμένη σε μια εντολή από την παλέτα "Έλεγχός" μπορούμε να φτιάξουμε συνθήκες έλεγχου για τον καρχαρία, όταν τον αγγίζουν τα ψάρια να εκτελεί τις κατάλληλες εντολές. Συγκεκριμένα, συνδυάζουμε την εντολή
ele5.png ή την εντολή ele6.pngαπό την παλέτα "Έλεγχος". Καθώς κινείτε το κάθε αντικείμενο γίνεται ο έλεγχος αν άγγιξε κάποιο άλλο αντικείμενο.
Έτσι για τον καρχαρία θα ελεγχουμε αν άγγιξε ένα κίτρινο ψάρι με την εντολή cap14.png, μέσα στην εντολή αυτή, ενσωματώνουμε της εντολές όπου θα δείχνει ο καρχαρίας στο κίτρινο ψάρι και να αλλάζει την μορφή του. Από την παλέτα "Κίνηση" με την εντολήkin9.png και επιλέγοντας να δείξει στο κίτρινο ψάρι. Στην συνέχεια θέλουμε να αλλάξει μορφή ο καρχαρίας, από την παλέτα "Όψεις" επιλέγουμε την εντολή ops2.png και πετυχαίνουμε την αλλαγη αυτή. Στα μάτια του παίχτη που παίζει το παιχνίδι η αλλαγή μπορεί αν μην γίνει ορατή και θα χρειαστεί να προσθέσουμε και μια χρονική καθυστέρηση με την βοήθεια της εντολής ele2.png από την παλέτα "Έλεγχος" ώστε αν γίνει ορατή η στιγμή που ανοίγει το στόμα του ο καρχαρίας.

Έτσι έχουμε τον συνδυασμό εντολών για τον καρχαρία όταν αγγίζει ένα κίτρινο ψάρι:
cap16.png

Το ίδιο μπλοκ εντολών θα ισχύουν και για τα άλλα είδη ψαριών και το χταπόδι που τρώει ο καρχαρίας


Στην περίπτωση που αγγίζει το κόκκινο ψάρι τον καρχαρία εκτός από το ότι θα αλλάξει μορφή σε "shark1-c", θα αλλάξει και εφέ το χρώμα του, αυτό γίνεται με την εντολήops3.png από την παλέτα "Όψεις". Επίσης πρέπει να μετακινηθεί πίσω στην αρχική του θέση, Άρα το μπλοκ εντολών αν ο καρχαρίας ακουμπήσει ένα κόκκινο ψάρι θα έχει ως εξής:
cap17.png
Για τη σωστή δόμηση των εντολών, βάζουμε τους ελέγχους σε εντολές ele5.pngκαι μόνο τον τελευταίο έλεγχο αφήνουμε ele6.png.

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


Το κίτρινο ψάριfish3.png

Θέση
ο κίτρινο ψάρι εμφανίζεται σε τυχαία θέση στο σκηνικό, άρα δεν χρειάζεται να τους δώσουμε συγκεκριμένες θέσεις αρχικοποίησης

Κίνηση
Λόγο του ότι το ψάρι καθώς κινείται θα πρέπει να αλλάζει κατευθύνσεις θα πρέπει να χρησιμοποιήσουμε από την παλέτα κίνησης την επιλογή kin1.png σε συνδυασμό με την εντολή kin2.png, ώστε να κινείτε κάποια βήματα και μετά να αλλάζει κατεύθυνση. Επιλογή όμως μιας σταθερής τιμής για τις μοίρες (π.χ. 15) θα κάνει το ψάρι να διαγράφει κυκλική τροχιά, έτσι για να αποφύγουμε το γεγονός αυτό και να προσανατολίσουμε την πορεία του ψαριού προς συγκεκριμένες κατευθύνσεις επιλέγουμε από την παλέτα "Τελεστές" την εντολή tel1.png και την διαμορφώνουμε να παίρνει τυχαίες επιλογές από -10 μέχρι 10 (είναι καλές τιμές έτσι ώστε το ψάρι να κινείται και να μην πηγαίνει προ τα πίσω). Τοποθετούμε την εντολή από την παλέτα "Τελεστές" μέσα στην εντολή "κίνησης" που λέει πόσες μοίρες να στρίψει, και έτσι πετυχαίνουμε το γεγονός ότι το ψάρι θα κάνει τυχαίες αλλαγές κατευθύνσεις από το εύρος ακεραίων τιμών -10 μέχρι 10 μοιρών από την κατεύθυνση που θα βρίσκεται. Αν το ψάρι φτάσει στα όρια του τότε θα πρέπει να επιστρέψει πίσω, αυτό από την παλέτα "Κίνησης" επιλέγουμε την εντολή kin3.png, έτσι το ψάρι θα αλλάζει κατεύθυνση όταν ακουμπά τα όρια.
Για να μειώσουμε την ταχύτητα με την οποία κινείται το ψάρι μπορούμε να βάλουμε από την παλέτα "Έλεγχος"
την επιλογή καθυστέρησης ele2.png και να δώσουμε τιμή καθυστερήσεις 0.01 δευτερόλεπτα.
Η κίνηση του ψαριού αφού θα είναι επαναληπτική, θα πρέπει όλα όσα γράψαμε παραπάνω να επαναλαμβάνονται, άρα θα χρησιμοποιήσουμε από την παλέτα "Έλεγχος" την επιλογή ele1.pngκαι μέσα να βάλουμε τις εντολές.

Έτσι το σύνολο εντολών για την κίνηση του κίτρινου ψαριών διαμορφώνεται ως εξής:
pic4.png

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


Αισθητήρες και όψεις
Από την παλέτα "Όψεις" και τις εντολές ops4.png και ops5.png, συνδυάζουμε τον έλεγχο για το άγγιγμα του ψαριού με τον καρχαρία και αναλόγως το εξαφανίζουμε ή το εμφανίζουμε.
Καθώς κινείτε το ψάρι, αν ακουμπήσει τον καρχαρία, τότε θα πρέπει να εξαφανιστεί, και μετά από κάποιο τυχαίο χρονικό διάστημα που ορίζουμε εμείς θα εμφανιστεί και πάλι στην οθόνη. Υλοποιούμε τα ψάρια που εμφανίζονται μετά από απόκρυψη (φάγωμα) να εμφανίζονται τυχαία είτε από τα δεξιά είτε από αριστερά της οθόνης σε τυχαίο ύψος. Κατά την επαφή του ψαριού με τον καρχαρία θα πρέπει να σταματήσει αν κινείτε για ένα μικρό χρονικό διάστημα ώστε να φαίνεται καθαρά η κίνηση που τρώγεται.

Πάλι την βοήθεια της παλέτας "Έλεγχος", "Αισθητήρες", "Όψεις" και "Τελεστές" δείχνουμε πως το ψάρι θα εμφανίζεται και θα εξαφανίζεται καθώς το τρώει ο καρχαρίας.
Από την παλέτα "Αισθητήρες" και την εντολή sens1.png ενσωματωμένη σε μια εντολή από την παλέτα "Έλεγχός" φτιάχνουμε συνθήκες έλεγχου για το κίτρινο ψάρι, για να ελέγχει όταν ακουμπάει ο καρχαρίας το κίτρινο ψάρι έτσι ώστε να εξαφανίζεται.
Συγκεκριμένα, συνδυάζουμε την εντολής
ele5.png ή την εντολή ele6.pngαπό την παλέτα "Έλεγχος". Καθώς κινείτε το κάθε αντικείμενο γίνεται ο έλεγχος αν άγγιξε κάποιο άλλο αντικείμενο.
Έτσι για τον κίτρινο ψάρι για να ελεγχουμε αν άγγιξε τον καρχαρία έχουμε εντολή cap14.png, μέσα στην εντολή αυτή, ενσωματώνουμε της εντολές όπου εκτελεί το ψάρι όταν το φάει ο καρχαρίας. Οι εντολές αυτές είναι η απόκρυψη του ψαριού, η τυχαία καθυστέρηση που θα πρέπει να περιμένουμε μέχρι να επανεμφανιστεί και επιλογή τυχαίας θέσης επανεμφάνισης.
Για την απόκρυψη του ψαριού χρησιμοποιούμε από την παλέτα "Όψεις" την εντολή ops5.png.
Για την τυχαία καθυστέρησης μέχρι να επανεμφανιστεί χρησιμοποιούμε τον συνδυασμό εντολών από την παλέτα "Τελεστές" την εντολή tel1.png και από την παλέτα "Έλεγχός" την εντολήele2.png, έτσι εισάγουμε τυχαία καθυστέρηση 5 λεπτών cap1.png.
Για την επιλογή τυχαίας θέσης επανεμφάνισης, το κίτρινο ψάρι εμφανίζεται είτε από τα δεξιά είτε από τα αριστερά άκρα του σκηνικού, σε τυχαίο ύψος. Για να πετύχουμε την τυχαία επιλογή από ανάμεσα σε δύο γεγονότα με την επιλογή εντολών από τις παλέτες "Έλεγχος" και "Τελεστές", για έλεγχο στην εντολή έλεγχου ele6.pngπρέπει να επιλέγεται τυχαία η η πρώτη επιλογή ή η δεύτερη, αυτό μπορούμε αν το επιτύχουμε με συνδυασμό εντολών από την παλέτα "Τελεστές" tel1.png και επιλεγουμε τυχαια επιλογή από 1 μέχρι 2 και κάνουμε έλεγχο αν είναι ίσο με 1 με την εντολή ισότηταςtel3.png , έτσι αν είναι ίσο με ένα να πηγαίνει στο πρωτο μπλοκ εντολών. Έτσι ο συνδυασμός των εντολών γίνεται cap2.png, που μέσα σε κάθε επιλογή θα υπάρχει θέση αρχικοποίησης δεξιά ή αριστερά της οθόνης. Για να εμφανίζεται το ψάρι χρησιμοποιήσουμε εντολές από την παλέτα "Κίνηση" για εμφάνιση από αριστερά έχουμε τις εντολές cap3.png και για εμφάνιση από δεξιά έχουμε τις εντολές cap4.png
Επίσης δηλώνουμε και για τον άξονα των y να επιλέγεται τυχαία μια τιμή από το εύρος τιμών -180 με 180, με την εντολή cap6.png
Έτσι συνολικά ο συνδυασμός εντολών όταν αγγίζει ένα κίτρινο ψάρι τον καρχαρία:

pic14.png
Η εντολή καθυστέρησης cap5.png την βάζουμε για να σταματάει το ψάρι και φαίνεται πιο ξεκάθαρα η στιγμή που τρώγεται.


Το κόκκινο ψάριfish4.png
Θέση
Τα κόκκινο ψάρι εμφανίζεται σε τυχαίες θέσεις στον χώρο, εκτός από την περιοχή πάνω αριστερά όπου εκεί εμφανίζεται καρχαρίας,(μπορούν να κινούνται στην περιοχή πάνω αριστερά, αλλά απαγορεύεται να εμφανιστούν εκεί κατά την εκκίνηση του παιχνιδιού). Εφόσον το κόκκινο ψάρι είναι εκείνο που αν ακουμπήσει τον καρχαρία αυτός χάνει μια ζωή, αποφεύγουμε να συμβεί το τυχαίο γεγονός, <ο καρχαρίας και το κόκκινο ψάρι κατά την την εκκίνηση του παιχνιδιού να ακουμπούν μεταξύ τους> και έτσι να χάσει ο καρχαρίας άδικα ζωή. Κινούνται συνεχώς από μόνα τους με σταθερή ταχύτητα, πιο γρήγορα από τα κίτρινα ψάρια και σε τυχαίες κατευθύνσεις στο χώρο. Όταν ακουμπήσει τον καρχαρία τότε εμφανίζεται οπουδήποτε αλλού εκτός από πάνω αριστερά (θέση καρχαρία)

Για να πετύχουμε ώστε τα κόκκινα ψάρια να εμφανίζονται σε συγκεκριμένες τυχαίες θέσεις στον χώρο εκτός από μια συγκεκριμένη περιοχή, πάλι από την παλέτα "Κίνηση" εισάγουμε τις εντολέςkin7.png και kin5.pngκαι τώρα όμως τις θέτουμε σε ένα τυχαίο εύρος συντεταγμένων ώστε αν αποφεύγουμε την περιοχή πάνω αριστερά. Χρησιμοποιώντας από την παλέτα "Τελεστές" την εντολή tel1.png και δίνοντας τις συγκεκριμένο εύρος θέσεων (για το x [-240 240] και για το y[-110 180] ).Έτσι έχουμε τον συνδυασμό εντολών για την αρχικοποίηση της θέσης των κόκκινων ψαριών:
cap8.png

Κίνηση
Αφού είναι εχθρός του καρχαρία μπορούμε να κάνουμε να κινούνται λίγο πιο γρήγορα τους αυξήσουμε την ταχύτητα κίνησης μειώνοντας τους την χρονική καθυστέρηση σε 0.001 δευτερόλεπτα.
Το μπλοκ εντολών για την κίνηση του κόκκινου ψαριού είναι το ίδιο με αυτό του κίτρινου ψαριού άπλα αλλάζουμε μόνο την χρονική καθυστέρηση.

Αισθητήρες και όψεις
Όταν ακουμπήσει τον καρχαρία πρέπει και αυτό να εξαφανιστεί και να επανεμφανιστεί μετά από κάποιο χρονικό διάστημα ή αν θελουμε μπορούμε να το εμφανίσουμε απευθείας. Όπως αναλύσαμε πιο πάνω τις εντολές εμφάνισης και εξαφάνισης για τα κίτρινα ψάρια, το ίδιο ισχύει και για τα κόκκινα ψάρια, με την διαφορά τώρα ότι το κόκκινο ψάρι πρέπει να μην εμφανίζεται στην θέση του καρχαρία κατά την εκκίνηση του παιχνιδιού ή μετά από μια επαφή με τον καρχαρία. Έτσι στα τυχαία γεγονότα που θέτουμε το εύρος τιμών για τις θέσεις που μπορεί αν εμφανιστεί το κόκκινο ψάρι, θα αποκλείσουμε το σημείο όπου εμφανίζεται ο καρχαρίας. Πάλι ορίζουμε τις τιμές για τον άξονα των y να είναι από [-180 110].

Έτσι συνολικά ο συνδυασμός εντολών όταν αγγίζει ένα κόκκινο ψάρι τον καρχαρία:
cap7.png

Το μοβ ψάριfish2.png

Θέση
Εμφανίζεται, όπως και το κίτρινο ψάρι σε τυχαία θέση στο σκηνικό, άρα δεν χρειάζεται να του δώσουμε συγκεκριμένες θέσεις αρχικοποίησης.

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

Έτσι το συνδυασμός εντολών κίνησης για το μοβ ψάρι γίνεται:
cap9.png

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


Το χταπόδιoctopus1-a.png

Θέση
Εμφανίζεται στον χώρο στα κάτω όρια σε τυχαία σημεία του βυθού και κινείται ευθεία προς τα πάνω μέχρι τα πάνω όρια. Το σχήμα του χταποδιού δεν βλέπει ακριβώς πάνω στην ευθεία αλλά βλέπει πάνω-δεξιά θα πρέπει να αλλάξουμε την κατεύθυνση του, ώστε να βλέπει πάνω στην ευθεία που θα κινείται.
Για την τυχαία επιλογή θέσης στο κάτω όριο, πρέπει να έχουμε τυχαία επιλογή για τον άξονα των x από το εύρος τιμών x[-235 235], αν και τα όρια του άξονα των x είναι -245 με 245, βάζουμε αυτά τα δικά μας όρια ώστε αν φαίνεται το χταπόδι πάντα ολόκληρο στην οθόνη, αν εμφανιστεί στα όρια τότε δεν θα φαίνεται ολόκληρο pic10.png.
Για την αλλαγή κατεύθυνσης από την παλέτα "Κίνησης" χρησιμοποιούμε την εντολή kin8.pngκαι δίνοντας την τιμή 65.
Έτσι έχουμε τον συνδυασμό εντολών για την αρχικοποίηση της θέσης του χταποδιού:
pic9.png


Κίνηση
Η κίνηση περιορίζεται μόνο στον άξονα των y. Εδώ από την παλέτα "Κίνησης" και την επιλογή kin5.pngμπορούμε να αλλάζουμε την τιμή των συντεταγμένων του χταποδιού και συγκεκριμένα να αυξάνουμε την τιμή της θέσης y και έτσι να φαίνεται η κίνηση του χταποδιού, για να αυξάνουμε την τιμή της θέσης y χρησιμοποιούμε από την παλέτα "Τελεστές" την εντολή tel2.pngκαι προσθέτουμε κάθε φόρα την θέση ykin6.png συν κάποιο σταθερό αριθμό, όσο μεγαλύτερο αριθμό βάλουμε τόσο πιο γρήγορα θα φαίνεται ότι κινείται. οι εντολές αυτές μπαίνουν σε ένα βρόγχο ο οποίος θα πρέπει να σταματήσει όταν το χταπόδι φτάσει στα πάνω όρια, άρα από την παλέτα "Έλεγχος" τοποθετούμε την εντολή βρόγχου ele3.pngώστε όταν ξεπεράσει κάποια συγκεκριμένη τιμή του άξονα των y να σταματήσει να εκτελείτε η εντολή,

Ξέροντας ότι το πάνω όριο έχει τιμή 180, βάζουμε στον έλεγχο μας την συνθήκη όταν το y ξεπεράσει την τιμή 160 να σταματήσει ο βρόγχος.
Επίσης δίνουμε και μια χρονική καθυστέρηση 0.3 δευτερολέπτων ώστε να μην πηγαίνει πολύ γρήγορα.

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

Για να βλέπουμε την κίνηση της εναλλαγής καθαρά, προσθέτουμε σε κάθε εναλλαγή μορφής μια μικρή χρονική καθυστέρηση.

Ο συνδυασμός εντολών καθώς κινείται και αλλάζει μορφές το χταπόδι:
pic15.png

Όταν το χταπόδι ξεπεράσει την θέση στον άξονα y 160 πρέπει να εξαφανιστεί και μετά από κάποιο χρονικό διάστημα να επανεμφανιστεί και πάλι από τον βυθό.
Επίσης όταν το χταπόδι ακουμπάει τον καρχαρία θα πρέπει να εξαφανίζεται κ να επανεμφανίζεται και πάλι από τον βυθό, μετά από κάποιο χρονικό διάστημα.
Με την χρήση των εντολών από την παλέτα "Όψεις" ops4.pngκαι ops5.png,

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

Άρα έχουμε τον συνδυασμό εντολών για το χταπόδι:
cap11.png

fish1-a.gif
Θέση
Τριγυρίζει στον λίγο πιο πάνω από τον βυθό και έχει σταθερή κατεύθυνση (δεξιά και αριστερά) και κινούνται με χαμηλή ταχύτητα. Οι θέση τους είναι συντεταγμένες κοντά στον βυθό, άρα για μικρή τιμή του y.

Έτσι έχουμε τον συνδυασμό εντολών για την αρχικοποίηση της θέση του μικρού ψαριού:
pic8.png

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

Αισθητήρες και όψεις
Δεν χρειάζεται αν τοποθετηθούν αισθητήρες αφού το μικρό ψάρι δεν αλληλεπιδρά με κανένα αντικείμενο. Επίσης δεν αλλάζει ούτε όψεις.


Εισαγωγή ήχων στο παιχνίδι

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

Για τους πρώτους δύο ήχους που περιγράψαμε και ακούγονται σε συγκεκριμένα συμβάντα μπορούμε από την παλέτα "Ήχος" να επιλέξουμε την εντολήhxos1.png, ώστε κάθε φορά που συμβαίνει το γεγονός να παίζει ο αντίστοιχος ήχος.

Ενώ για τον τρίτο ήχο που περιγράψαμε, επειδή θα παίζει σε όλη την διάρκεια του παιχνιδιού, πρέπει η εντολή να είναι τοποθετημένη σε ένα ατέρμονα βρόγχο ele1.png.
Υπάρχει όμως ένα πρόβλημα σε αυτήν την περίπτωση!!!
Πριν προλάβει να τελειώσει ολόκληρος ο ήχος θα ξανάρχιζε από την αρχή, αλλοιώνοντας την μορφή ήχου που θα θέλαμε να ακούγεται . Για να λυθεί αυτό το πρόβλημα υπάρχει η εντολή hxos2.png από την παλέτα "Ήχος". έτσι θα ακούγεται ολόκληρος ο ήχος πρώτου να ξανά αρχίσει ο ίδιος ήχος να παίζει και πάλι.

Έτσι το σύνολο εντολών για το σκηνικό γίνεται:
skiniko1.png

Εισαγωγή μεταβλητών στο παιχνίδι

Για να ολοκληρώσουμε το παιχνίδι θα πρέπει να μπορούμε να επιτύχουμε τον στόχο και την τερματική συνθήκη του παιχνιδιού. Άρα λοιπόν πρέπει:
  1. να αποθηκευουμε τη βαθμολογία που μαζεύει ο καρχαρίας όταν τρώει ψάρια.
  2. Να μετράμε τις ζωές που χάνει ο καρχαρίας όταν ακουμπά στα κόκκινα ψάρια, όταν το γεγονός αυτό επαναληφθεί τρεις φορές, τότε πρέπει το παιχνίδι να τελειώνει.

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

Από την παλέτα "Μεταβλητές", επιλέγουμε την επιλογή "Δημιούργησε μια μεταβλητή" και δημιουργούμε δυο μεταβλητές, μια μεταβλητή "score" όπου θα αποθηκεύει τους βαθμούς που κερδίζει ο καρχαρίας και μια μεταβλητή "life" όπου θα αποθηκεύει τις ζωές που χάνει ο καρχαρίας.

Έτσι λοιπόν για κάθε αντικείμενο που είναι λεία του καρχαρία, την στιγμή που αρχικοποιείται κατά την εκκίνηση του παιχνιδιού τοποθετούμε την εντολή var1.png, όπου αρχικοποιεί την μεταβλητή σε 0 βαθμούς.
Για την στιγμή που ακουμπά ο καρχαρίας ένα από αυτά τα αντικείμενα θα έχουμε την αύξηση αυτής της μεταβλητής κατά το ανάλογο βαθμό που προσφέρει κάθε αντικείμενο ( κίτρινο ψάρι 1 βαθμό, μοβ ψάρι 3 βαθμούς και χταπόδι 5 βαθμούς).
Από την παλέτα "Μεταβλητές" για κάθε τέτοιο αντικείμενο τοποθετούμε την εντολή var3.pngαυτή μέσα στον έλεγχο που κάνει κάθε αντικείμενο αν το ακουμπήσει ο καρχαρίας, δηλαδή κάτω από την εντολή ήχου που βάλαμε προηγουμένως και στο πεδίο τιμών βάζουμε το ανάλογο πόσο που αναφέραμε πιο πάνω για κάθε αντικείμενο.

Έτσι για παράδειγμα το κίτρινο ψάρι θα έχει το πιο κάτω σύνολο εντολών:
cap12.png

Για την μεταβλητή "life" θα πρέπει αν την αρχικοποιεί το κόκκινο ψάρι την στιγμή που ξεκινάει το παιχνίδι στην τιμή 3, και να μειώνεται κατά ένα κάθε φορά που ακουμπάει τον καρχαρία. Στις 3 φόρες που θα ακουμπήσει θα πρέπει σταματήσει το παιχνίδι. Άρα θα πρέπει αν αντικαταστήσουμε τον ατέρμονα βρόχο του κόκκινου ψαριού που και να τοποθετήσουμε ένα βρόγχο υπό συνθήκη ele7.pngαπό την παλέτα "Έλεγχος". Όπου η συνθήκη θα είναι μέχρι η μεταβλητή "life" να γίνει ίση με 0 elexos.png. Όταν βγει από τον βρόγχο τότε τερματίζουμε το παιχνίδι και κατά συνέπεια όλα τα αντικείμενα, με την εισαγωγή της εντολής ele8.png από την παλέτα "Έλεγχός"

Έτσι το κόκκινο ψάρι έχει το πιο κάτω σύνολο εντολών:
cap13.png

*Προσθήκη μπορούμε να δημιουργήσουμε αντίγραφα για κάθε αντικείμενο, έτσι ώστε να είναι πιο πλούσιο το υδάτινο περιβάλλον.

Εδώ υπάρχει ολοκληρωμένος ο κώδικας και μπορείτε να τον

ΤΕΛΟΣ


Ακόμα ένα παιχνίδι Pac Man http://nebomusic.net/chasingeating.html


0.JPG

Περιγραφή του παιχνιδιού


Το παιχνίδι είναι μια παραλλαγή του γνωστού σε όλους μας παιχνιδιού pacman.
Βέβαια το δικό μας παιχνίδι έχει υποστεί κάποιες τροποποιήσεις.

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


Για την προετοιμασία υλοποίησης του παιχνιδιού μας θα πρέπει
  1. Να επιλέξουμε το κατάλληλο υπόβαθρο για το σκηνικό.
  2. Να βρούμε τα αντικείμενα που θα χρησιμοποιήσουμε και να επιλέξουμε τις κατάλληλες ενδυμασίες¨
    γι 'αυτά.
  3. Να προσαρμόσουμε τις διαστάσεις των αντικειμένων μας.
  4. Να ορίσουμε τη συμπεριφορά του καθενός από αυτά.




Αντικείμενα παιχνιδιού

  • Φαντασματάκι

    1.JPG


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


  • Νυχτερίδα

    2.JPG

    Έχουμε τρία ( 3 ) τέτοια αντικείμενα, τα οποία περιφέρονται μέσα στο περιβάλλον με σκοπό να φάνε το φαντασματάκι.
    Το πρώτο εμφανίζεται μέση της αριστερής πλευράς του περιβάλλοντος μας, το δεύτερο κάτω αριστερα ενώ το τρίτο πάνω δεξια με την έναρξη του παιχνιδιού μας.




  • Κομήτες

    7.JPG

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


  • Αστεράκια

    3.JPG

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





Σκηνικό

Το παιχνίδι μας λαμβάνει χώρο σ 'ένα διαστημικό περιβάλλον, οπότε εισάγουμε για υπόβαθρο του σκηνικού το stars. Όπως παρατηρούμε για το σκηνικό μας δεν υπάρχουν εντολές κίνησης. Επιπλέον, εισάγουμε και μια ηχογράφηση ( ηχογράφηση1 ), την οποία βάζουμε να ακούγεται κατά τη διάρκεια του παιχνιδιού.


8.JPG

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



9.JPG 10.JPG

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


14.JPG


Τέλος, στα σενάρια του σκηνικού τοποθετούμε τις συνθήκες τερματισμού του παιχνιδιού μας.

Η πρώτη συνθήκη είναι όταν η μεταβλητή ζωή γίνει ίση με το μηδέν ( 0 ).


5.JPG

Η δεύτερη συνθήκη είναι όταν η μεταβλητή σκορ γίνει ίση με το δέκα ( 10 ).


6.JPG


Η τρίτη συνθήκη είναι όταν το χρονόμετρο ξεπεράσει τα 59 δευτερόλεπτα.


7.JPG



Αναλυτική περιγραφή κάθε αντικειμένου


  • Φαντασματάκι

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


    13.JPG


    Το φαντασματάκι μας έχει δύο διαφορετικές ενδυμασίες.


    1.JPG 111.JPG


    Αρχικά, μόλις ξεκινήσει το παιχνίδι, το φαντασματάκι εμφανίζεται πάνω αριστερά στο περιβάλλον μας. Ο ρόλος του στο παιχνίδι είναι να κινείται μέσα στο περιβάλλον, ανάμεσα από τους κομήτες και αποφεύγοντας τις νυχτερίδες, προκειμένου να φάει ένα απο τα αστεράκια. Το φαντασματάκι μας δε μπορεί να περάσει μέσα από τους κομήτες και κάθε φορά που έρχεται σ' επαφή μ' έναν από αυτούς περιστρέφεται κατά 180 μοίρες. Επιπλέον, όταν ο ήρωας μας έρθει σε επαφή με μία από τις νυχτερίδες τότε η μεταβλητή ζωή μειώνεται κατά 1, το φαντασματάκι μας πηγαίνει στην αρχική του θέση και ακούγεται ένας χαρακτηριστικός ήχος ( νότα 48 ). Όταν το φαντασματάκι μας ακουμπήσει κάποιο από τα αστεράκια τότε η μεταβλητή σκορ αυξάνεται κατα 1, το φαντασματάκι μας αλλάζει, για ένα μικρό χρονικό διάστημα, ενδυμασία και επανέρχεται ξανά στην αρχική του ενδυμασία.








    1.JPG



    2.JPG



    3.JPG





  • Νυχτερίδες

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


    3.JPG 4.JPG



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

    Τέλος, η πορεία που πραγματοποιεί η καθεμία είναι επιλεγμένη από εμάς.




    1.JPG


    2.JPG




  • Αστεράκι

    3.JPG

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


    1.JPG




    Προέκταση

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








Ένα ακόμη παιχνίδι:

Πέτρα - Ψαλίδι - Χαρτί

Πηγή : http://scratch.mit.edu/

17_4_1.jpg

Είναι το γνωστό παιχνίδι με τους εξής 3 απλούς κανόνες :

  1. Η Πέτρα νικάει το ψαλίδι
  2. Το ψαλίδι νικάει το χαρτί
  3. Το χαρτί νικάει την πέτρα

Κατασκευάζουμε το σκηνικό


Χρησιμοποιώντας τον επεξεργαστή της ζωγραφικής, δίνουμε στο σκηνικό την εξής μορφή (Backround):

17_4_2.jpg

Δημιουργούμε και μια μορφή σαν την αρχική για να εμφανίζεται κατά την έναρξη του παιχνιδιού
και την ονομάζουμε Instructions.

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

17_4_3.jpg

Κατασκευάζουμε μια μορφή για τον παίκτη


Έστω ότι το ονομάζουμε You.

Για το You χρειαζόμαστε 7 ενδυμασίες
  • 1 για το κάθε αντικείμενο στην κανονική του μορφή:

17_4_4.jpg

  • 1 για το κάθε αντικείμενο στην κατεστραμμένη του μορφή:

17_4_5.jpg

  • και τέλος μια ενδυμασία Choose για την επιλογή αντικειμένου από τον παίκτη:

17_4_6.jpg

Ας προχωρήσουμε τώρα στη συγγραφή του σεναρίου για την μορφή You

  • Θα χρειαστούμε μία μεταβλητή για να κρατάμε το score.
  • Στην αρχή του παιχνιδιού μηδενίζουμε το score και παροτρύνουμε τον παίκτη να επιλέξει αντικείμενο:

17_4_7.jpg

  • Στη συνέχεια ελέγχουμε την επιλογή του παίκτη:

17_4_8.jpg

  • Εφόσον ο παίκτης επιλέξει το αντικείμενο του, το συγκρίνουμε με το αντικείμενο (που επιλέγεται τυχαία) του αντιπάλου.
  • Σημείωση : Ελέγχουμε μόνο τις περιπτώσεις που νικάει ο παίκτης κάνοντας τις ανάλογες ενέργειες (αυξάνουμε το score, μεταφέρουμε το αντικείμενο του παίκτη ομαλά πάνω στο αντικείμενο του αντιπάλου, και μετατρέπουμε το αντικείμενο του αντιπάλου στην κατεστραμμένη του μορφή):

17_4_9a.jpg
17_4_9b.jpg

  • Τέλος, θα πρέπει να ελέγξουμε τις περιπτώσεις που χάνει ο παίκτης και να τροποποιήσουμε το αντικείμενο του ανάλογα:

17_4_10.jpg

Κατασκευάζουμε μια μορφή για αντίπαλο

Έστω ότι ονομάζουμε τον αντίπαλο Scratch.

Δουλεύουμε όπως πριν, αλλά έχουμε τις εξής διαφορές.

  • Δεν χρειάζεται η ενδυμασία Choose (όπως στον παίκτη). Οι υπόλοιπες ενδυμασίες είναι κοινές με αυτές του παίκτη:

17_4_11.jpg

  • Στον κυρίως κώδικα επιλέγεται ένα τυχαίο αντικείμενο, και στη συνέχεια έχουμε έλεγχο και ανάλογες κινήσεις σε περίπτωση νίκης του αντιπάλου (όπως πριν):

17_4_12a.jpg
17_4_12b.jpg

  • Και τέλος, θα πρέπει να ελέγξουμε τις περιπτώσεις που χάνει ο αντίπαλος και να τροποποιήσουμε το αντικείμενο του ανάλογα:

17_4_13.jpg

Κατασκευάζουμε τα 3 κουμπιά-πλήκτρα επιλογής αντικειμένου για τον παίκτη


17_4_14.jpg

  • Θα χρειαστούμε 2 ενδυμασίες για το κάθε κουμπί - πλήκτρο.
Hilight και Button (για το αν είναι πατημένο το πλήκτρο ή όχι, αντίστοιχα).

Για το Scissors έχουμε :

17_4_15.jpg

Για το Paper έχουμε :

17_4_16.jpg

Για το Rock έχουμε :

17_4_17.jpg

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

Για το Scissors έχουμε :

17_4_18.jpg


Για το Paper έχουμε :

17_4_19.jpg


Για το Rock έχουμε :

17_4_20.jpg

  • Τέλος, θα πρέπει να κάνουμε τους εξής ελέγχους για το πότε θα εμφανίζεται και πότε όχι το κάθε κουμπί, καθώς και τι γίνεται όταν το κουμπί πατηθεί :

Για το Scissors έχουμε :

17_4_21.jpg

Για το Paper έχουμε :

17_4_22.jpg

Για το Rock έχουμε :

17_4_23.jpg

ΤΕΛΟΣ