Κανόνες Εργαστηρίου

traffic lights

scratch hour-of-code-logo2

    robotics
spike prime rover

Πώς να φτιάξουμε το δικό μας παιχνίδι με το Scratch
Fly Hyppo... Game

fly hyppo

Το παιχνίδι αυτό το συναντάμε σε υπολογιστές και κονσόλες χειρός που χρησιμοποιούσαν πιο παλιά. Βέβαια και σήμερα το συναντάμε σε ιστοσελίδες στο ίντερνετ με συλλογές games. Υπάρχουν πολλές εκδόσεις με πολλούς ήρωες, εύκολες ή δύσκολες πίστες και ανάλογα την γλώσσα προγραμματισμού με την οποία έχει κατασκευαστεί, τα γραφικά (δηλαδή οι εικόνες, τα χρώματα, τα animation κλπ.) μπορεί να είναι καλύτερα και ποιο ποιοτικά.

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

Ο ήρωας που θα επιλέξουμε βρίσκεται στην συλλογή με τις εικόνες υπόβαθρου (background) που βρίσκεται στο scratch και είναι ο φοβερός Hyppo!!!
Τα βήματα που θα ακολουθήσουμε περιγράφονται και εμφανίζονται με εικόνες πιο κάτω:

1. Δημιουργία αντικειμένων

Δημιουργούμε τα τρία αντικείμενα που φαίνονται πιο κάτω, τον Hyppo, την κολόνα και το game over.

 objects
  •  Όπως φαίνεται και στη διπλανή εικόνα, τον Hyppo θα τον αναζητήσουμε από τη συλλογή αντικειμένων του scratch πατώντας τον μεγενθυτικό φακό, όπως μας δείχνει το κόκκινο βαλάκι 1 στη διπλανή εικόνα.

Την κολόνα (column) και το game over θα τα φτιάξουμε εμείς από την ζωγραφική του scratch πατώντας το πινέλο, όπως μας δείχνουν τα βελάκια 2 και 3 στη διπλανή εικόνα. Πιο αναλυτικές οδηγίες και εικόνες για την κατασκευή τους θα δείτε αμέσως πιο κάτω.

  •  Κατασκευή κολώνας (column).
column1

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

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

Όταν τελειώσουμε και αφού βεβαιωθούμε ότι είναι ευθυγραμμισμένο ή τέλος πάντων είναι όπως μας αρέσει κάνουμε δεξιό κλικ και επιλέγουμε διπλασιασμό ώστε να δημιουργήσουμε συνολικά τρεις (3) ή τέσσερις (4) ενδυμασίες.

Ενδυμασίες στο scratch λέγονται οι διαφορετικές όψεις που μπορεί να έχει κάποιο αντικείμενο.

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

  • Κατασκευή game over.
game over obj

Επιλέγουμε το εργαλείο κειμένου και τη γραμματοσειρά "Marker" όπως μας δείχνουν τα βελάκια στη διπλανή εικόνα και γράφουμε τη φράση "GAME OVER".

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

 

2. Υπόβαθρο ή αλλιώς φόντο (background)

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

 background 1st  background

 

3. Μεταβλητές

  • Πριν ξεκινήσουμε να δημιουργούμε τον κώδικα του κάθε αντικειμένου θα χρειαστεί να δημιουργήσουμε δυο (2) μεταβλητές με τα ονόματα: score και gravity.
  • Η μεταβλητή score θα μας δείχνει κάθε φορά το σκόρ το οποίο θα αλλάζει ανάλογα με το πόσο καλοί είμαστε!!!. Κάθε κολώνα που θα περνά ο Hyppo η μεταβλητή score θα αυξάνεται κατά 1, ενώ θα ορίσουμε κάθε φορά που ξεκινά το παιχνίδι να ξεκινά από το μηδέν.
  • Η μεταβλητή gravity όπως λέει και το όνομά της θα είναι ο συντελεστής της βαρύτητας και θα παίρνει μια αρνητική τιμή όπου θα κινεί τον Hyppo προς το έδαφος (όπως συμβαίνει και στην πραγματικότητα άλλωστε...), όμως κάθε φορά που θα πατάμε το πλήκτρο space ο Hyppo θα αλλάζει ενδυμασία και θα κινεί τα φτερά του... δηλαδή θα πετάει και ο συντελεστής της βαρύτητας (μεταβλητή gravity) θα παίρνει μια θετική τιμή και θα κινεί τον Hyppo προς τα επάνω... 
 game over

 Δημιουργία μεταβλητών.


Προσοχή, τσεκάρουμε να εμφανίζεται στην οθόνη μόνο η μεταβλητή score.

 

Η λογική ειναι να συνδέσουμε την τιμή του κατακόρυφου άξονα Υ (άξονας που
δείχνει την κίνηση προς τα πάνω ή προς τα κάτω) του Hyppo με την μεταβλητή gravity.


Έτσι όταν το gravity παίρνει αρνητική τιμή θα πηγαίνει τον Hyppo προς τα κάτω (αφού οι
τιμή του άξονα Υ θα μειώνεται) μέχρι να αγγίξει το έδαφος και να ενεργοποιηθεί το game over...
όμως όταν θα πατάμε το πλήκτρο space το gravity θα παίρνει θετική τιμή και θα πηγαίνει τον
Hyppo προς τα επάνω (αφού η τιμή του άξονα Y θα αυξάνεται).

4. Κώδικας Hyppo

  • Ο κώδικας του Hyppo αποτελείται από τρία μπλοκ:
hyppo code 1

 Στο πρώτο μπλοκ με το πάτημα της πράσινης σημαίας ξεκινά ο κώδικας να τρέχει και πρώτα κάνουμε τον Hyppo να μην είναι ορατός μέχρι να κάνουμε κάποιες αρχικοποιήσεις. Τον πηγαίνουμε να ξεκινά πάντα από τη θέση Χ=0 και Υ=0 (δηλαδή από το κέντρο της οθόνης 0,0).
Στη συνέχεια ορίζουμε το score να ξεκινά πάντα από το 0, κάνουμε τον Hyppo να ξεκινά με την πρώτη ενδυμασία του (διαθέτει δυο εικόνες, μια με τα φτερά ανοικτά και μια με τα φτερά κλειστά για να ενναλλάσονται και να φαίνεται ότι πετάει).

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

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

hyppo code 2  Στο δεύτερο μπλοκ που αρχίζει και αυτό με το πάτημα της πράσινης σημαίας, αρχικοποιούμε την μεταβλητή gravity σε 0 και μετά μέσα σε μια εντολή για πάντα, ορίζουμε την κατακόρυφη θέση του Hyppo  (άξονας Υ, πάνω - κάτω) να παίρνει τιμή από τη μεταβλητή gravity.
Έτσι μετά ελέγχουμε εάν πατήθηκε το πλήκτρο space οπότε κάνουμε το gravity 1,5 διαφορετικά το gravity γίνεται -0,2
hyppo code 3  Το τρίτο μπλοκ ενεργοποιείται κάθε φορά που πατιέται το πλήκτρο space (διάστημα) κι έτσι κάθε φορά κάνει δυο επαναλήψεις όπου εναλάσσει της ενδυμασίες του Hyppo με μια μικρή καθυστέρυση για να φαίνεται στο μάτι μας ότι ανοιγοκλέινει τα φτερά του και "πετάει".  

Συνολικά ο κώδικας του Hyppo:
hyppo code

5. Κώδικας κολώνας (column)

  • Ο κώδικας της κολώνας αποτελείται από τρι αμπλοκ που ενεργοποιούνται με το πάτημα της πράσινης σημαίας.
column code 1

 Στο πρώτο μπλόκ για πάντα ελέγχουμε εάν η κολώνα αγγίζει τον Hyppo, μεταδίδει το μήνυμα game over  και σταματά το παιχνίδι.

Βέβαια στην πραγματικότητα ο Hyppo αγγίζει την κολώνα... αλλά στον προγραματισμό μερικά πράγματα υλοποιούνται με τον... ανάποδο τρόπο!!!

column code 2

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

Στη συνέχεια λέμε στον Hyppo να ξεκινήσει από τη θέση X=280. Η θέση αυτή (άξονας Χ) βρίσκεται στην δεξιά άκρη της οθόνης. Εκεί λοιπόν του λέμε να εμφανιστεί και μετά να ολισθήσει (δηλαδή να προχωρήσει) μέχρι το σημείο στον άξονα Χ= -210 το οποία βρίσκεται στο αριστερό άκρο της οθόνης.

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

column code 3

 Στο τρίτο μπλοκ κάνουμε πάλι ένα ανάποδο κόλπο... στην πραγματικότητα το score δεν αυξάνεται όταν ο Hyppo περνάει την κολώνα αλλά όταν προλάβουν να περάσουν 7 δευτερόλεπτα. Τα 7 δευτερόλεπτα είναι ο χρόνος που χρειάζεται η κολώνα να πάει από την δεξιά αρχική της θέση στην οθόνη μέχρι την αριστερή άκρη.

Εάν τα καταφέρει και ο Hyppo ακόμα "ζει" τότε σημαίνει ότι πέρασε την κολώνα και δικαιούται έναν πόντο.

Στο κόλπο αυτό χρειάζεται μια μικρή διόρθωση μια φορά στην αρχή όπου το σκορ θα αλλάξει για την πρώτη φορά στα 5 δευτερόλεπτα.

Συνολικός κώδικας της κολώνας:
column code

6. Κώδικας game over

  • Ο κώδικας του game over αποτελείται από δυο μπλοκ.
  • Στο πρώτο με το πάτημα της πράσινης σημαίας (δηλαδή με το ξεκίνημα του παιχνιδιού) το game over εξαφανίζεται (γίνεται μη ορατό).
  • Στο δεύτερο μπλοκ, όταν λάβει το μήνυμα game over από την επαφή του Hyppo με το έδαφος ή την κολώνα εμφανίζεται στο πρώτο επίπεδο για να φαίνεται χωρίς να κρύβεται από κάποιο άλλο αντικείμενο κι έτσι ο παίκτης ενημερώνεται ότι έχασε και σταματά το παιχνίδι.
game over code

 

 

Τα δυο μπλοκ κώδικα του
αντικειμένου game over. 

7. Τελικός έλεγχος

Εάν έχουμε κάνει σωστά όλα τα παραπάνω βήματα το παιχνίδι μας θα είναι έτοιμο!!!

playing

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

 

Καλή διασκέδαση...