Δημιουργία τρισδιάστατου παιχνιδιού οδήγησης 3ο μέρος

Σχετικά έγγραφα
Δημιουργία τρισδιάστατου παιχνιδιού οδήγησης 1ο μέρος

Δημιουργία τρισδιάστατου παιχνιδιού οδήγησης 2ο μέρος

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος.

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Texturing, Animation, Lighting, Rendering

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

ΟΔΗΓΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΤΡΙΣΔΙΑΣΤΑΤΩΝ ΓΡΑΦΙΚΩΝ ΜΕ ΧΡΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ POVRAY MODELER ΣΤΟ LINUX

ΕΠΕΞΕΡΓΑΣΙΑ ΒΙΝΤΕΟ ΜΕ ΤΟ ΠΡΟΓΡΑΜΜΑ VSDC FREE VIDEO EDITOR

1. Ανοίξτε το 3D Studio MAX, ή αν είναι ήδη ανοιχτό, επιλέξτε File Reset.

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

Άσκηση 7 Τρισδιάστατα εφέ (3D effects) στο Director

Τεχνολογία Πολυμέσων. Ενότητα 9: Behaviors. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

ΣΕΝΑΡΙΟ ΜΑΘΗΜΑΤΟΣ: ΔΥΝΑΜΙΚΗ ΚΙΝΗΤΙΚΗ ΕΝΕΡΓΕΙΑ

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Κλιμάκιο Πληροφορικής Σεμινάρια για τα λογισμικά κλειστού τύπου Κύκλος Α

TeleCost Hotel για Panasonic TDA

Εισαγωγή στο 3DS Max 2009

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 INTERNET PHONE

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

Το δεύτερο παιχνίδι ΤΟΥΒΛΑΚΙΑ

Οπτική Επικοινωνία 4 - Α.Ε Προτεινόμενες ρυθμίσεις V-Ray 3.4 για Rhino. Υλικά

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

App Inventor 5ο Μάθημα (Κορώνα γράμματα - επέκταση)

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31

Βρίσκοντας το block εισόδου χρήστη στο τέλος της αριστερής στήλης του site:

Σχεδίαση με AutoCAD Περιβάλλον εφαρμογής Βασικές ρυθμίσεις

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 IRIS PHONE

Εφαρμογή δημιουργίας σεναρίων Sctatch

Unity Μια Πρώτη Ματιά

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΗΜΥ 213 Εργαστήριο Οργάνωσης Η/Υ και Μικροεπεξεργαστών Εαρινό εξάμηνο Διδάσκων: Γιώργος Ζάγγουλος

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Windows XP Κεφάλαιο 2: Επιφάνεια εργασίας (desktop)... 15

BakeMe v Βασικές Οδηγίες Χρήσης

Φτιάξε ένα απλό παιχνίδι

Movie Maker (Δημιουργία βίντεο)

Πληροφορική. Εργαστηριακή Ενότητα 2 η : Το βιβλίο εργασίας του MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Βασικές Εντολές MicroWorlds Pro.

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences

Hase οδηγίες χρήσης.

Γεωμετρία, Αριθμοί και Μέτρηση Μαθαίνω Γεωμετρία και Μετρώ Παίζω με τους αριθμούς Βρίσκω τα πολλαπλάσια

Άσκηση 10 Φωτισµός. Στόχος της άσκησης

Στο παράθυρο που θα εµφανιστεί πατήστε το κουµπί Unzip.

Εγχειρίδιο Εγκατάστασης και Χρήσης Εκπαιδευτικής Εφαρμογής

Μεταβλητές. Για περισσότερες λεπτομέρειες πάνω στις μεταβλητές θα ήταν χρήσιμο να διαβάσεις το

Mendeley - εισαγωγή βιβλιογραφικών παραπομπών στον κειμενογράφο

Ενσωμάτωση εικόνας BMP σε σχέδιο

1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1

Ας κάνουμε μια γάτα να περπατάει στο Scratch 2.0

Ψηφιακή τέχνη DIGITAL ART

2 ο Εργαστήριο Αλληλεπίδραση και Animation

Τεχνολογία Πολυμέσων. Ενότητα 11: Αντίγραφή, Επικόλληση και Καθαρισμός Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Μην τροφοδοτείτε το καταγραφικό με διαφορετική παροχή ισχύος από αυτή που αναγράφεται στο τροφοδοτικό του.

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC

Σχετική κίνηση αντικειμένων

Οδηγός Χρήσης Moviemaker

2. Κάντε κλικ στο παράθυρο όψης Top για να το ενεργοποιήσετε, ώστε να σχεδιάσετε το πάτωµα του δωµατίου.

Benzina v Βασικές Οδηγίες Χρήσης

The 38 th International Physics Olympiad Iran Theory Competition Sunday, 15 July 2007

The 38 th International Physics Olympiad Iran Theory Competition Sunday, 15 July 2007

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ

1ο Φύλλο Εργασίας. της παλέτας Ήχος. Πώς μπορούμε να εισάγουμε και να αναπαράγουμε έναν ήχο;

ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ ΦΥΣΙΚΗΣ ΔΥΝΑΜΙΚΗ (χωρίς τριβή) ΘΕΜΑΤΑ Β

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ :

Ενότητα 21 Pivot Tables

Άσκηση 10 η Φωτισμός. Στόχος της άσκησης

Προγραμματισμός. Το περιβάλλον του scratch

SIMATIC MANAGER SIMATIC MANAGER

Scratch Δημοτικό 2 : Εισαγωγή στις βασικές εντολές και λειτουργίες της Scratch

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

Εργαστήρια Text Mining & Sentiment Analysis με Rapid Miner

Σχεδίαση με το AutoCAD

Ενότητα 14 Γραφικές Παραστάσεις

Άσκηση 6 η Ανύψωση Σχημάτων. Στόχος της άσκησης

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Άσκηση 8 Ελαστικές και μη ελαστικές κρούσεις Αρχή διατήρησης της ορμής

Πώς εισάγουμε μια νέα έννοια χρησιμοποιώντας το εργαλείο Create

Ενότητα 17 Εκτύπωση Φύλλων Εργασίας και Γραφικών Παραστάσεων

Η εντολή «επανέλαβε Χ»

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

Μέρος 2ο (Συγχωνεύοντας Multimedia & Animation)

Visual Flowchart Γενικά

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

Κάθε ένα κελί θα πρέπει να περιέχει ένα μόνο στοιχείο δεδομένων, για παράδειγμα το όνομα σε ένα κελί, το επίθετο σε άλλο κελί.

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

Οδηγίες Πρόσβασης στο EndNote Web. Πρόσβαση στο EndNote Web

Σημειώσεις του σεμιναρίου: Δημιουργία εκπαιδευτικού ιστότοπου με χρήση του λογισμικού Joomla

Καροτοκυνηγός. Αντικείμενα

Sricam R CONCEPTUM. SricamPC. Εγχειρίδιο εφαρμογής

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) Αθήνα, 1 Ιουνίου Εισαγωγή

Εγκατάσταση και Απεγκατάσταση Ubuntu 7.10

Microsoft Windows 7: Οδηγός «Τα πρώτα βήµατα»

Ενημερώσεις λογισμικού Οδηγός χρήσης

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ "PROΩΘΗΣΗ" PROώθηση

Google Drive Google Docs

Computing and Information Systems Service. ιαχείριση Αρχείων

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Meridian v Βασικές Οδηγίες Χρήσης

Transcript:

Μάθημα 8ο Δημιουργία τρισδιάστατου παιχνιδιού οδήγησης 3ο μέρος

Σε αυτό το μάθημα θα κάνουμε μία εισαγωγή στις βασικές διαδικασίες για να κάνουμε χρήση του Havok. Αλλά, πρώτα ας δούμε τι ακριβώς είναι το Havok. Το Havok είναι μία μηχανή φυσικής, η οποία έχει αναπτυχθεί από την ομόνυμη ιρλανδική εταιρία Havok. Μία μηχανή φυσικής, όπως είναι το Havok, επιτρέπει την προσομοίωση σε πραγματικό χρόνο των δυνάμεων και της δυναμικής στερεών σωμάτων, και όλα αυτά σε τρεις διαστάσεις. Μας παρέχει πολλούς τύπους δυναμικών περιορισμών μεταξύ στερεών σωμάτων και έχει μία ιδιαίτερα βελτιστοποιημένη βιβλιοθήκη ανίχνευσης συγκρούσεων (collision detection). (Πηγή: WikiPedia...) Χρησιμοποιώντας, λοιπόν, το Havok μπορούμε πολύ εύκολα να δώσουμε ρεαλισμό (ή όχι) και φυσική στα παιχνίδια μας. Το Director, όμως, δεν υποστηρίζει από την αρχή το Havok. Πρέπει να κάνουμε μία μικρή διαδικασία, έτσι ώστε να το εγκαταστήσουμε: 1. Κατεβάζουμε από το eclass τα αρχεία του Havok Control.cst Havok.x32 Setup.cst 2. Ανοίγουμε το φάκελο Xtras του Director (βρίσκεται εκεί που είναι εγκατεστημένο στο σκληρό δίσκο το Director, π.χ. C:\Program Files (x86)\adobe\adobe Director 11\Configuration\Xtras) 3. Εκεί δημιουργούμε ένα νέο φάκελο με το όνομα Havok και τοποθετούμε μέσα του το αρχείο Havok.x32 4. Μετά, ανοίγουμε το φάκελο Libs του Director (βρίσκεται εκεί που είναι εγκατεστημένο στο σκληρό δίσκο το Director, π.χ. C:\Program Files (x86)\adobe\adobe Director 11\Configuration\Libs) 5. Εκεί δημιουργούμε ένα νέο φάκελο με το όνομα Havok και τοποθετούμε μέσα του τα Setup.cst και Control.cst. Τώρα μπορούμε να χρησιμοποιήσουμε όλη τη δύναμη του Havok στα παιχνίδια μας μέσα από το Director! Ανοίγουμε, λοιπόν, το προηγούμενο παιχνιδάκι που δημιουργήσαμε. Το πρώτο πράγμα που πρέπει να κάνουμε είναι να εισάγουμε το αντικείμενο που μας παρέχει το Havok. Επιλέγουμε από το μενού Insert Media Element Havok Physics Scene. Ονομάζουμε το νέο cast member EmptyHavok. Το επόμενο βήμα είναι να συνδέσουμε την τρισδιάστατη σκηνή που έχουμε δημιουργήσει με τη μηχανή φυσικής. Για να το κάνουμε αυτό επιλέγουμε από το Library (βρίσκεται στο κάτω μέρος της μπάρας στα δεξιά) το φάκελο Behaviors.

Εικόνα 1: Library Μέσα σε αυτό το φάκελο βρίσκουμε έναν άλλο με το όνομα Havok. Στον φάκελο (...) Setup βλέπουμε διάφορες επιλογές. Αυτή που μας ενδιαφέρει αρχικά είναι η Havok Physics (Inserted HKE). Το κάνουμε drag & drop στη σκηνή, ΠΑΝΩ στο sprite που περιέχει τον τρισδιάστατο κόσμο. Αμέσως θα εμφανιστεί το παρακάτω παραθυράκι. Εικόνα 2: Οι παράμετροι του Havok Physics Εδώ βλέπουμε διάφορες παραμέτρους, οι οποίες καθορίζουν τη συμπεριφορά του Havok. Αναλυτικότερα, στο Which Havok Cast επιλέγουμε το cast member που εισάγαμε πριν λίγο. Η παράμετρος Tolerance καθορίζει το πόσο μεγάλη θα είναι η περιοχή γύρω από τα αντικείμενα που θα περιλάβουμε μέσα στη μηχανή φυσικής. Αυτή χρησιμοποιείται στα collisions. Το Timestep είναι ο χρόνος σε ms που απαιτείται για να υπολογιστεί ξανά η φυσική. Όσο μικρότερο είναι αυτό, τόσο πιο γρήγορα γίνονται οι υπολογισμοί, απαιτώντας περισότερους υπολογιστικούς πόρους. Το Substeps είναι σε πόσα στάδια χωρίζεται ο κάθε κύκλος υπολογισμών. Προφανώς, όσο πιο μεγάλος είναι αυτό ο αριθμός τόσο μεγαλύτερη ακρίβεια παίρνουμε, αλλά απαιτώντας περισσότερους υπολογιστικούς πόρους. Τέλος, το World Scale υποδηλώνει την κλίμακα του κόσμου. Μία μονάδα εκφράζει 1 μέτρο. Επομένως, ανάλογα με την τιμή που θα δώσουμε θα πάρουμε και την ανάλογη συμπεριφορά των αντικειμένων στο παιχνίδι. Η default τιμή εκφράζει ίντσες.

Στο δικό μας παιχνίδι αλλάζουμε το Time Step σε 0.03 και το World Scale σε 0.01 (χιλιοστά δηλαδή). Επόμενο βήμα είναι να προσδιορίσουμε ποια αντικείμενα είναι σταθερά στερεά σώματα, έτσι ώστε το Havok να υπολογίζει κατάλληλα τις δυνάμεις. Από το library Havok Setup κάνουμε drag & drop ένα Make Fixed Rigid Body μέσα στο sprite με τον κόσμο. Αμέσως θα ανοίξει ένα παράθυρο με διάφορες ιδιότητες. Εικόνα 3: Παράμετροι σταθερού στερεού σώματος Το πεδίο Which περιλαμβάνει μία λίστα με όλα τα τρισδιάστατα αντικείμενα που υπάρχουν στον κόσμο που έχουμε δημιουργήσει. Εδώ επιλέγουμε τα αντικείμενα που θέλουμε να έχουν collisions και φυσική αλλά είναι ακίνητα. Προφανώς, μπορούμε να επιλέξουμε μόνο ένα κάθε φορά, άρα κάνουμε την ίδια διαδικασία για κάθε αντικείμενο που θέλουμε. Η ιδιότητα Restitution εκφράζει την αναπήδηση που θα έχει ένα αντικείμενο που θα έρθει σε επαφή με το εν λόγω σταθερό στερεό σώμα. Η παράμετρος Friction εκφράζει την τριβή που θα συναντά ένα αντικείμενο που θα έρθει σε επαφή με το σταθερό στερεό σώμα. Τέλος, το Type καθορίζει τον τύπο του bounding box που θα περιβάλλει το στερεό σώμα και ουσιαστικά καθορίζει την συμπεριφορά των collisions. Προσοχή, ανάλογα με το αντικείμενο που έχουμε πρέπει να επιλέξουμε και το κατάλληλο bounding box, έτσι ώστε να μη σπαταλάμε χωρίς λόγο υπολογιστική ισχύ, αλλά ούτε και να χάνουμε σε ακρίβεια. Το επόμενο βήμα είναι να προσδιορίσουμε ποιά αντικείμενα είναι κινούμενα στερεά σώματα, και πάλι για να γίνονται σωστά οι υπολογισμοί των δυνάμενων από το Havok. Από το Library Havok Setup κάνουμε drag & drop ένα Make Movable Rigid Body μέσα στο sprite με τον κόσμο. Αμέσως θα ανοίξει ένα παράθυρο με διάφορες ιδιότητες.

Εικόνα 4: Παράμετροι κινούμενου στερεού σώματος Το πεδίο Which περιλαμβάνει μία λίστα με όλα τα τρισδιάστατα αντικείμενα που υπάρχουν στον κόσμο που έχουμε δημιουργήσει. Εδώ επιλέγουμε τα αντικείμενα που θέλουμε να έχουν collisions και φυσική αλλά είναι ακίνητα. Προφανώς, μπορούμε να επιλέξουμε μόνο ένα κάθε φορά, άρα κάνουμε την ίδια διαδικασία για κάθε αντικείμενο που θέλουμε. Η ιδιότητα Restitution εκφράζει την αναπήδηση που θα έχει ένα αντικείμενο που θα έρθει σε επαφή με το εν λόγω σταθερό στερεό σώμα. Η παράμετρος Friction εκφράζει την τριβή που θα συναντά ένα αντικείμενο που θα έρθει σε επαφή με το σταθερό στερεό σώμα. Το Type καθορίζει τον τύπο του bounding box που θα περιβάλλει το στερεό σώμα και ουσιαστικά καθορίζει την συμπεριφορά των collisions. Προσοχή, ανάλογα με το αντικείμενο που έχουμε πρέπει να επιλέξουμε και το κατάλληλο bounding box, έτσι ώστε να μη σπαταλάμε χωρίς λόγο υπολογιστική ισχύ, αλλά ούτε και να χάνουμε σε ακρίβεια. Η επόμενη ιδιότητα είναι η Mass. Αυτή προσδιορίζει τη μάζα (δηλαδή το βάρος) του στερού σώματος (σε κιλά ή ότι άλλο ορίζει το World Scale). Μεγαλύτερη τιμή μας δίνει πιο βαρύ αντικείμενο, το οποίο θέλει και μεγαλύτερη δύναμη για να μετακινηθεί. Το Start Pinned ορίζει εάν το αντικείμενο θα είναι καρφωμένο στη θέση του όταν ξεκινήσει το παιχνίδι. Το Start Active ορίζει εάν το αντικείμενο θα μπορεί να δεχθεί δυνάμεις κλπ όταν ξεκινήσει το παιχνίδι. Τώρα έχουμε τελειώσει με την αρχικοποίηση του συστήματος φυσικής, το παιχνίδι ήδη συμπεριφέρεται με βάση τους νόμους της φυσικής και το μόνο που μένει είναι να αλλάξουμε κατάλληλα τον κώδικα, έτσι ώστε να εκμεταλλευτούμε τις δυνατότητες του Havok. global speedvalue global trans global ghavok Κώδικας για το movie script

on startmovie member("rally4w").resetworld() speedvalue=100 member("rally4w").model("board").addchild(member("rally4w").model("front_t")) member("rally4w").model("board").addchild(member("rally4w").model("frwheel")) member("rally4w").model("board").addchild(member("rally4w").model("flwheel")) member("rally4w").model("board").addchild(member("rally4w").model("rrwheel")) member("rally4w").model("board").addchild(member("rally4w").model("rlwheel")) member("rally4w").model("board").addchild(member("rally4w").model("rear_t")) member("rally4w").model("board").addchild(member("rally4w").camera("defaultview")) End Εδώ, πρακτικά, κάνουμε reset τον τρισδιάστατο κόσμο όταν ξεκινήσει το παιχνίδι και κάνουμε τις αρχικές ρυθμίσεις στα μοντέλα μας (όπως και στο προηγούμενο μάθημα). global speedvalue global rightturn global leftturn global a Κώδικας για το frame script global ghavok global trans global rbcar on exitframe me go to the frame on enterframe me pgoingforward = keypressed(126) pgoingbackward = keypressed(125) pgoingright = keypressed(124) pgoingleft = keypressed(123) pspeedup=(keypressed("a") or keypressed("a")) pspeeddown=(keypressed("z") or keypressed("z")) if pgoingforward=true and speedvalue>0 then forwardmove if pgoingbackward=true and speedvalue>0 then backwardmove if pgoingright=true and speedvalue>0 then rightmove if pgoingleft=true and speedvalue>0 then leftmove if pspeedup=true then speedup if pspeeddown=true then speeddown a=0.01 rbcar=ghavok.rigidbody("board") rbcar.friction=0.5 rbterrain=ghavok.rigidbody("ground") rbterrain.friction=0.9 on speedup if speedvalue<2000 then speedvalue=speedvalue+50 on speeddown speedvalue=speedvalue-50 if speedvalue<0 then speedvalue=0

on forwardmove trans = member("rally4w").model("board").transform.duplicate() trans.position = Vector(0,0,0) trans.scale = Vector(1,1,1) currentfwd = trans * vector(0,speedvalue,0) rbcar.applyimpulse(currentfwd) on leftmove trans = member("rally4w").model("board").transform.duplicate() trans.position = Vector(0,0,0) trans.scale = Vector(1,1,1) currentfwd = trans * vector(0,1,0) currentaxis = trans * vector(-1,0,0) currentleft = a*(currentfwd.cross(currentaxis)) rbcar.applyangularimpulse(currentleft) on rightmove trans = member("rally4w").model("board").transform.duplicate() trans.position = Vector(0,0,0) trans.scale = Vector(1,1,1) currentfwd = trans * vector(0,1,0) currentaxis = trans * vector(1,0,0) currentleft = currentfwd.cross(currentaxis) currentright=1*a*currentleft rbcar.applyangularimpulse(currentright) on backwardmove trans = member("rally4w").model("board").transform.duplicate() trans.position = Vector(0,0,0) trans.scale = Vector(1,1,1) currentfwd = trans * vector(0,speedvalue,0) rbcar.applyimpulse(-1*currentfwd) Και εδώ, η λογική του κώδικα είναι ίδια με τις προηγούμενες φορές. Το μόνο που αλλάζει είναι ο τρόπος με τον οποίο γίνεται η μετακίνηση και η περιστροφή του οχήματος. Αυτό γίνεται χρησιμοποιώντας εντολές που μας παρέχει το Havok, όπως είναι για παράδειγμα η applyimpulse. Περισσότερες πληροφορίες, όπως και εντολές/functions, για το Havok μπορείτε να βρείτε στο manual που υπάρχει στα έγγραφα στο eclass. Άσκηση για το σπίτι Το μόνο που έχετε να κάνετε σαν άσκηση στο σπίτι είναι να προσαρμόσετε το δικό σας παιχνίδι (αυτό με το όχημα/ανθρωπάκι/ούφο/τριλοβίτη) έτσι ώστε να κάνει χρήση της μηχανής φυσικής Havok. Θα πρέπει, δηλαδή, το όχημα σας να μετακινείται μέσω του Havok, όπως επίσης

τα collisions, οι δυνάμεις, η βαρύτητα κλπ να προέρχονται από το Havok. Στο eclass θα ανεβάσετε ένα rar/zip αρχείο, το οποίο θα περιέχει όλα τα απαραίτητα για τη σωστή λειτουργία του παιχνιδιού αρχεία (εικόνες, ήχους ή οτιδήποτε άλλο).