Car Race 3D - Computer Game σε Scratch

15
Car Race 3D Computer game σε “Scratch” Παπαγιαννάκης Παναγιώτης 2 ο Γυμνάσιο Ευόσμου

Transcript of Car Race 3D - Computer Game σε Scratch

Page 1: Car Race 3D - Computer Game σε Scratch

Car Race 3DComputer game σε “Scratch”Παπαγιαννάκης Παναγιώτης2ο Γυμνάσιο Ευόσμου

Page 2: Car Race 3D - Computer Game σε Scratch

Η βασική ιδέα

• Η βασική ιδέα ήταν να δημιουργήσουμε ένα παιχνίδι αυτοκινητοδρομίας στον τρισδιάστατο χώρο.

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

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

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

Page 3: Car Race 3D - Computer Game σε Scratch

Οι δυσκολίες

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

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

Page 4: Car Race 3D - Computer Game σε Scratch

Υπολογισμοί

• Θεωρήσαμε ως λ τον λόγο του πλάτους του δρόμου στον ορίζοντα (α) προς το πλάτος του δρόμου στη θέση του αυτοκινήτου (β).

• Όταν ένα αντικείμενο εμφανίζεται στον ορίζοντα το μέγεθος του πρέπει να είναι το λ% του μεγέθους που θα έχει στη θέση του αυτοκινήτου και θα αυξάνει ανάλογα με την απόσταση (Δψ) από τον ορίζοντα.

• Με παρόμοιο τρόπο θα υπολογίζεται και η στιγμιαία ταχύτητα του αντικειμένου.

α

β

Δψ

αβ

λ=

Page 5: Car Race 3D - Computer Game σε Scratch

Τύποι

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

• Ανάλογοι τύποι ισχύουν και για τα υπόλοιπα αντικείμενα που κινούνται από τον ορίζοντα προς το αυτοκίνητο

Page 6: Car Race 3D - Computer Game σε Scratch

Τα υπόβαθρα του παιχνιδιού

Το σκηνικό της εφαρμογής διαθέτει 4 βασικά υπόβαθρα: • Έρημος• Πόλη• Βουνό• Σαβάνα

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

Page 7: Car Race 3D - Computer Game σε Scratch

Οι μεταβλητές της εφαρμογής

Το παιχνίδι χρησιμοποιεί πολλές μεταβλητές. Οι βασικότερες είναι:

• λ: Αποθηκεύει την αναλογία του πλάτους του δρόμου στον ορίζοντα προς το πλάτος του δρόμου στη θέση του αυτοκινήτου.

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

• Χ: Ορίζει την οριζόντια ταχύτητα του αυτοκινήτου.

• Εμ1, Εμ2: Παίρνουν τις τιμές 0 και 1 και χρησιμοποιούνται για να καθορίζουν το πότε θα εμφανίζονται οι γραμμές της διαγράμμισης του δρόμου στην κορυφή της πίστας.

• Χρόνος: Αποθηκεύει τον χρόνο της κάθε προσπάθειας του παίκτη.

Page 8: Car Race 3D - Computer Game σε Scratch

Περιγραφή των μορφών που χρησιμοποιούνται

Στο παιχνίδι συμμετέχουν πολλές μορφές, κυριότερες από τις οποίες είναι:• My Car: Το αυτοκίνητο που ελέγχει ο χρήστης• Line1, Line2: Οι γραμμές διαγράμμισης του δρόμου. • Car1, Car2: Αντιπροσωπεύουν άλλα αυτοκίνητα που

κινούνται στον δρόμο και πρέπει να αποφύγει ο χρήστης.• Spot: Αντιπροσωπεύει μια κηλίδα λαδιών στον δρόμο

που πρέπει επίσης να αποφύγει ο χρήστης. • Tree1 έως Tree8: Είναι οι διάφορες «διακοσμητικές»

μορφές που με την κίνηση τους συμβάλουν στην ψευδαίσθηση της κίνησης.

Page 9: Car Race 3D - Computer Game σε Scratch

Περιγραφή της μορφής My CarΤο βασικό σενάριο της μορφής ξεκινάει όταν η μορφή λάβει το μήνυμα «game». Αρχικά η μορφή αλλάζει την ενδυμασία σε αυτή που έχει επιλέξει ο χρήστης, παίρνει την αρχική της θέση, ορίζει τις τιμές των μεταβλητών «Χ» και «Ταχύτητα» σε 0, ορίζει την τιμή της μεταβλητής «game» σε «on» και επαναλαμβάνει τα ακόλουθα μέχρι η μεταβλητή «game» να γίνει «off»:

• Κινείται οριζόντια τόσα βήματα όση είναι η τιμή της μεταβλητής «Χ».

• Ελέγχει αν πατήθηκε το πάνω ή κάτω βέλος του πληκτρολογίου οπότε αυξάνει ή μειώνει την μεταβλητή «ταχύτητα» (εμπρόσθια ταχύτητα του αυτοκινήτου)

• Ελέγχει αν αγγίζει την μορφή «spot» (κηλίδα λαδιών), οπότε μεταβάλλει τυχαία την μεταβλητή «Χ» (σπινιάρισμα).

• Ελέγχει εάν βγει από τα όρια του δρόμου ή συγκρουστεί με κάποιο άλλο αυτοκίνητο οπότε ορίζει την τιμή της μεταβλητής «game» σε «off» ώστε να τερματιστεί το παιχνίδι και μεταδίδει το μήνυμα «finish» προς άλλες μορφές της εφαρμογής.

• Ελέγχει αν πατήθηκε το δεξί ή αριστερό βέλος του πληκτρολογίου οπότε μεταβάλει ανάλογα την οριζόντια ταχύτητα του αυτοκινήτου (μεταβλητή «Χ»)

Page 10: Car Race 3D - Computer Game σε Scratch

Περιγραφή των μορφών Line1 & Line2

Το βασικό σενάριο της μορφής Line1 ξεκινά μόλις λάβει το μήνυμα “game”. Παίρνει την αρχική της θέση και μέγεθος στον ορίζοντα του σκηνικού . Στη συνέχεια επαναλαμβάνει μέχρι η μεταβλητή ‘game’ να πάρει την τιμή ‘off’ τις ακόλουθες εντολές:

• Υπολογίζει την στιγμιαία ταχύτητα «υ» και το σύμφωνα με τον τύπο που προαναφέρθηκε και κινείται τόσα βήματα όσα ορίζει η μεταβλητή «υ».

• Ορίζει το μέγεθος της σύμφωνα με τον τύπο που προαναφέρθηκε.

• Ελέγχει εάν πέρασε από μία συγκεκριμένη θέση (θέση ψ < -30) οπότε ορίζει την τιμή της μεταβλητής «εμ2» σε 1 ώστε να αρχίσει η κίνηση της δεύτερης γραμμής (Line2) στον ορίζοντα.

• Ελέγχει εάν έφτασε στο κάτω μέρος του σκηνικού (θέση ψ < -160) οπότε αποκρύπτεται, τοποθετείται και πάλι στον ορίζοντα και αφού πάρει το ανάλογο μέγεθος περιμένει μέχρι η μεταβλητή «εμ1» που επηρεάζεται από την μορφή Line2 πάρει την τιμή 1 οπότε επανεμφανίζεται και συνεχίζει την κίνηση της.

Page 11: Car Race 3D - Computer Game σε Scratch

Τα σενάρια υλοποιημένα σε Scratch

Μέρος του βασικού σεναρίου της μορφής My

Car

Σενάριο της μορφής Line1

Page 12: Car Race 3D - Computer Game σε Scratch

High Scores

Το παιχνίδι καταγράφει τα High Scores ανά επίπεδο. Για το σκοπό αυτό χρησιμοποιούνται δύο λίστες με 3 στοιχεία η κάθε μία:

• Η λίστα Best Times που αποθηκεύει τον καλύτερο χρόνο σε κάθε επίπεδο. Η λίστα αυτή δεν είναι ορατή στον χρήστη

• Η λίστα High Scores που αποθηκεύει για κάθε επίπεδο ένα αλφαριθμητικό αποτελούμενο από το επίπεδο, το όνομα του καλύτερου παίκτη και τον χρόνο του.

• Κάθε φορά που ο παίκτης ολοκληρώνει επιτυχώς ένα επίπεδο συγκρίνεται ο χρόνος του με το αντίστοιχο στοιχείο της λίστας Best Times και εφόσον ο χρόνος του είναι καλύτερος ενημερώνεται το αντίστοιχο στοιχείο της λίστας High Scores

Page 13: Car Race 3D - Computer Game σε Scratch

Στάδια ανάπτυξής της εφαρμογής

1. Αναζήτηση, επεξεργασία εικόνων για υπόβαθρα και ενδυμασίες.

2. Δημιουργία βασικού μενού και σύνδεση των χαρακτήρων μεταξύ τους με μηνύματα.

3. Δημιουργία και τελειοποίηση ενός επιπέδου.4. Εισαγωγή και άλλων επιπέδων και εμποδίων.5. Δημιουργία λίστας καταγραφής των καλύτερων χρόνων.6. Αναζήτηση για τυχόν σφάλματα και επιδιόρθωση τους.

Page 14: Car Race 3D - Computer Game σε Scratch

Που θα βρείτε την εφαρμογή

• Στην Gameland• Στην Ιστοσελίδα του σχολείου μας (http://2gym-

evosm.thess.sch.gr/)

Page 15: Car Race 3D - Computer Game σε Scratch

Ευχαριστίες

Θα ήθελα να ευχαριστήσω του καθηγητές της Πληροφορικής κ. Γιάννη Δασκαλάκη και Δημήτρη Γαϊτανίδη για την υποστήριξη και την βοήθεια που μου παρείχαν.

Και όλους εσάς για την προσοχή σας