9 Ιουνίου 2009Torque Game Engine1 7 ο Εργαστήριο Torque Αλληλεπίδραση με Αντικείμενα (..συνέχεια)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Εκμάθηση διεπαφής MS Kodu. Δημιουργώ τον Κόσμο Το πρώτο πράγμα που θα φτιάξουμε είναι ο κόσμος. Λογικό, αφού χωρίς κόσμο, πού θα τοποθετούσαμε μετά τα.
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΕΙΣΑΓΩΓΗ ΣΤΟ DOS (Disk Operating System)
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Copyright ©: SAMSUNG & Samsung Hope for Youth. Με επιφύλαξη κάθε νόμιμου δικαιώματος Εκπαιδευτικό υλικό Λογισμικό: Δημιουργία εφαρμογών Επίπεδο.
Microsoft ® Lync ™ 2010 Εκπαίδευση για Πληρεξούσιους.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γυμνάσιο Νέας Κυδωνίας
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Databases & Qt Μανούσης Πέτρος ΑΜ: 862
Torque Game Engine - #03 Κώστας Καρπούζης (kkarpou)
Torque Game Engine - #04 Κώστας Καρπούζης (kkarpou) Αμαρυλλίς Ραουζαίου (araouz) Γιώργος Καρυδάκης (gcari)
Torque Game Engine - #0 8 Κώστας Καρπούζης (kkarpou) Αμαρυλλίς Ραουζαίου (araouz) Γιώργος Καρυδάκης (gcari)
Torque Game Engine - #0 7 Κώστας Καρπούζης (kkarpou) Αμαρυλλίς Ραουζαίου (araouz) Γιώργος Καρυδάκης (gcari)
Torque Game Engine - #02 Κώστας Καρπούζης (kkarpou)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Βάσεις Δεδομένων Μάθημα 4.
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία 7 Νοεμβρίου 2008 Στυλιανή Πετρούδη ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
Νταλιακούρας Νικόλαος CEID – Πανεπιστήμιο Πατρών Object Oriented Programming II (C++) Χειμερινό Εξάμηνο
Παρουσίαση Περιβάλλοντος του Scratch. Σκηνή Η σκηνή είναι ο χώρος, που εκτυλίσσονται οι ιστορίες, τα παιχνίδια σου και τα animations. Τα αντικείμενα.
ΕΝΟΤΗΤΑ 3 – MS Windows – Περιβάλλον εργασίας
Microsoft Excel 4.4 Τύποι και Συναρτήσεις
Εργασία με παράθυρα.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
Microsoft PowerPoint Powerpoint Κίκα Χρυσοστόμου.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
ΧΡΗΣΗ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ PERIOD04 ΓΙΑ ΤΗΝ ΕΥΡΕΣΗ ΣΥΧΝΟΤΗΤΩΝ ΑΝΑΠΑΛΣΗΣ ΠΑΛΛΟΜΕΝΩΝ ΑΣΤΕΡΩΝ Αλέξιος Λιάκος, M.Sc.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
Microsoft Excel 4.3 Διαχείριση Φύλλων Εργασίας Κίκα Χρυσοστόμου.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Δημιουργία προγράμματος ερωτηματολογίου Πολλαπλής Επιλογής Α. Σχεδίαση Φόρμας.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies.
Εξομοιωτής Ψηφιακών Κυκλωμάτων
Torque Game Engine - #06 Κώστας Καρπούζης (kkarpou) Αμαρυλλίς Ραουζαίου (araouz) Γιώργος Καρυδάκης (gcari)
12 Μαΐου 2009Torque Game Engine1 Εισαγωγή στην Μηχανή Εισαγωγή αντικειμένων Βασικές αρχές torque script Εγγραφή στο forum Επιλογές ασκήσεων.
Βασικά στοιχεία της Java
Torque Game Engine Κώστας Καρπούζης (kkarpou) Λώρη Μαλατέστα (lori)
12 Μαΐου 2009Torque Game Engine1 4 ο Εργαστήριο Torque GUI Αλληλεπίδραση με Αντικείμενα.
1. 1.Δημιουργία Νέου Αρχείου Επιλέγουμε καρτέλα File, πατούμε στην εντολή New και μετα αφου διαλέξουμε τον τύπo αρχείου (π.χ Blank Document), πατούμε.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Ξεχωριστή Μεταγλώττιση & Χώροι Ονομάτων Αντικειμενοστραφής Προγραμματισμός.
ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ 1 ο ΕΡΓΑΣΤΗΡΙΟ: WINDOWS XP ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
Μάθημα 8 Session και Cookies. Session Το HTTP πρωτόκολλο είναι stateless. Άρα το HTTP δεν έχει μνήμη. Αυτό σημαίνει ότι εάν έχω μια μεταβλητή που την.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
FREEMAT Επεξεργασία εικόνας.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΠΡΟΧΩΡΗΜΕΝΕΣ ΤΕΧΝΙΚΕΣ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Μετονομασία Φακέλων και Αρχείων
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
1. Πώς ανοίγουμε ένα αποθηκευμένο βιβλίο εργασίας;
Αρχεία και φάκελοι.
Web Services στη C# Εργαστήριο 3
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γραφικές Μέθοδοι Σχεδιασμού με Η-Υ Εκπαιδευτικό Παράδειγμα 2
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΡΟΓΡΑΜΜΑ ΕΠΙΜΟΡΦΩΣΗΣ Β΄ΕΠΙΠΕΔΟ ΓΙΑ ΠΕ03
Μεταγράφημα παρουσίασης:

9 Ιουνίου 2009Torque Game Engine1 7 ο Εργαστήριο Torque Αλληλεπίδραση με Αντικείμενα (..συνέχεια)

9 Ιουνίου 2009Torque Game Engine2 Προηγούμενο μάθημα tutorial.base 1.Αντιγραφή φακέλου "rocket_launcher" που περιέχει.dts αρχεία και τις εικόνες υφής (textures) για το rocket launcher και το rocket projectile, στο φάκελο "tutorial.base/data/shapes". 2.Αντιγραφή του "rocket_launcher.cs" στο φάκελο "tutorial.base/server". 3. Στο " tutorial.base/server/game.cs" στην συνάρτηση onServerCreated() προσθήκη της γραμμής (πριν από την αντίστοιχη εντολή για το player.cs): exec("./rocket_launcher.cs"); 4.Στο " tutorial.base/server/player.cs" στην συνάρτηση PlayerShape::onAdd προσθέστε: parent::onAdd( %this, %obj ); %obj.mountImage( RocketLauncherImage, 0 ); %obj.setImageAmmo( 0, 1 );

9 Ιουνίου 2009Torque Game Engine3 Δημιουργία Bot I Copy the "bot.cs" script to your "tutorial.base/server" directory. Ανοίξτε το " tutorial.base/server/game.cs" και στην συνάρτηση onServerCreated() προσθέστε την εντολή (στο τέλος της λίστας με τα exec()): exec("./bot.cs"); Στο bot.cs ορίζεται ο AIManager που διαχειρίζεται όλα τα bots. Το ειδικό αυτό αντικείμενο πρέπει να αρχικοποιηθεί προσθέτοντας τις εξής εντολές: –Στην συνάρτηση onMissionLoaded() new ScriptObject(AIManager) {}; MissionCleanup.add(AIManager); AIManager.think(); –Στην συνάρτηση onMissionEnded() AIManager.delete(); Το αρχείο bot.cs περιέχει σχόλια που περιγράφουν πως θα ακολουθεί το bot το μονοπάτι που θα ορίσουμε.

9 Ιουνίου 2009Torque Game Engine4 Δημιουργία Bot II Προς το παρόν δεν έχουμε ορίσει κάποιο μονοπάτι για τα bots (αυτό γίνεται από τον Mission Editor), με αποτέλεσμα όταν δημιουργούνται με την κλήση της συνάρτησης AIManager::spawn(),θα εμφανίζεται ένα απλό bot που δεν θα ακολουθεί κάποιο μονοπάτι.

9 Ιουνίου 2009Torque Game Engine5 Ορισμός μονοπατιού I Τρέχουμε το torqueDemo.exe Με F11 ανοίγουμε τον Mission editor Στη συνέχεια ενεργοποιούμε τον World Editor Creator Ανοίγουμε το δέντρο κάτω από το "Mission Objects" στο κάτω δεξιά παράθυρο της οθόνης: "Mission Objects->Mission" Στον φάκελο "Mission", επιλέγουμε το "Path" για να δημιουργήσουμε ένα νέο αντικείμενο new Path. Του δίνουμε όνομα, π.χ. "myPath". Ανοίγουμε το δέντρο "MissionGroup" πάνω δεξιά, βρίσκουμε και επιλέγουμε το "myPath". Κρατάμε πατημένο το "Alt" key καθώς το επιλέγουμε με το ποντίκι. Τώρα το χρώμα του "myPath" πρέπει να αλλάξει από άσπρο σε γκρι. Στην συνέχεια θα δημιουργήσουμε τρεις PathMarkers και πρέπει να είμαστε σίγουροι ότι θα ανήκουν στο αντικείμενο "myPath".

9 Ιουνίου 2009Torque Game Engine6 Ορισμός μονοπατιού II Για να οριστεί ένα μονοπάτι αρκεί να ορίσουμε μερικά σημεία/σημάδια από τα οποία θα αποτελείται. Επιστρέφουμε στο κάτω δεξιά δέντρο, ανοίγουμε το φάκελο "Mission" και επιλέγουμε το "PathMarker". Του δίνουμε όνομα, π.χ. "myMarker0" και ελέγχουμε ότι ανήκει στο "myPath" στο δέντρο "MissionGroup" (πάνω δεξιά). Επαναλαμβάνουμε την διαδικασία και δημιουργούμε άλλα δύο PathMarkers με ονόματα "myMarker1 και "myMarker2". Τα σημάδια που τοποθετήσαμε πρέπει να έχουν ικανοποιητική απόσταση μεταξύ τους χωρίς όμως να υπάρχει κίνδυνος να στείλουν το bot εκτός σκηνής. (Με Alt+c κινείται η κάμερα χωρίς τον παίκτη) "File->Save Mission" Εxit game

9 Ιουνίου 2009Torque Game Engine7 Ορισμός μονοπατιού ΙΙΙ Ανοίγουμε το " tutorial.base/server/bot.cs" με σκοπό να χρησιμοποιήσουμε το μονοπάτι που μόλις ορίσαμε σαν μονοπάτι του bot. Στην συνάρτηση AIManager::spawn() βάζουμε σε σχόλια την εντολή που δημιουργεί το "Bot_1" και αφαιρούμε τα σχόλια που δημιουργούν το "Bot_2". When done, save the "bot.cs" script file. Το string "MissionGroup/myPath", που περνιέται σαν όρισμα στις συναρτήσεις AIPlayer::spawnOnPath(), και followPath() περιέχει την πληροφορία που χρειάζεται το "Bot_2" για να ακολουθήσει το μονοπάτι που δημιουργήσαμε.

9 Ιουνίου 2009Torque Game Engine8 Αντιγράφουμε τα "radiusDamage.cs" και "shapeBase.cs" στον φάκελο "tutorial.base/server" Ανοίγουμε το " tutorial.base/server/game.cs" και στην συνάρτηση onServerCreated() προσθέτουμε στο τέλος της λίστας με τα exec()): exec("./radiusDamage.cs"); exec("./shapeBase.cs"); Αντιγράφουμε το "player_dieknees.dsq" (αρχείο animation) στον φάκελο "\tutorial.base\data\shapes\player" directory.

9 Ιουνίου 2009Torque Game Engine9 Ανοίγουμε το "\tutorial.base\data\shapes\player\player.cs" και προσθέτουμε την εξής εντολή στο τέλος του TSShapeConstructor datablock: sequence12 = "./player_dieknees.dsq die"; Με αυτή την εντολή ορίζουμε στον παίκτη ένα καινούριο death animation που θα εκτελείται όταν τον πετυχαίνουμε με το όπλο.

9 Ιουνίου 2009Torque Game Engine10 Ανοίογυμε το " tutorial.base/server/player.cs" και στο PlayerShape datablock προσθέτουμε την γραμμή PlayerData(PlayerShape) { className = Armor;... Ορίζοντας την μεταβλητή className ως Armor όλοι οι παίκτες και τα bots θα κληρονομούν όλες τις συναρτήσεις που ορίζονται στο Armor name space. Συνεχίζουμε με αλλαγές στο ίδιο αρχείο. Προσθέτουμε την παρακάτω συνάρτηση στο τέλος του "player.cs« function Player::playDeathAnimation( %this ) { %this.setActionThread( "die" ); }

9 Ιουνίου 2009Torque Game Engine11 Ακριβώς από κάτω προσθέτουμε την συνάρτηση: function Armor::damage( %this, %obj, %sourceObject, %position, %damage, %damageType ) { // If we're already dead, don't bother with it... if( %obj.getState() $= "Dead" ) return; %obj.applyDamage( %damage ); echo( "Damage Type = %damageType ); // Deal with client callbacks here because we don't have this information // in the onDamage or onDisabled methods %client = %obj.client; %sourceClient = %sourceObject ? %sourceObject.client : 0; if( %obj.getState() $= "Dead" ) %client.onDeath( %sourceObject, %sourceClient, %damageType, %location ); }

9 Ιουνίου 2009Torque Game Engine12 Ακριβώς από κάτω προσθέτουμε την συνάρτηση: function Armor::onDisabled( %this, %obj, %state ) { // "damage" method. %obj.playDeathAnimation(); // Release the main weapon trigger. %obj.setImageTrigger( 0, false ); // Schedule time and duration of fade-out for dead players. %obj.schedule( 6000, "startFade", 1000, 0, true ); // Schedule deletion for dead players. %obj.schedule( 8000, "delete" ); } Με την έννοια object disable αναφέρεται στον θάνατο ενός παίκτη ή bot

9 Ιουνίου 2009Torque Game Engine13 Στο αρχείο " tutorial.base/server/rocket_launcher.cs" αλλάζουμε τις τιμές ως εξής: datablock ProjectileData( RocketProjectile ) {... directDamage = 50; radiusDamage = 25; damageRadius = 1.5;...

9 Ιουνίου 2009Torque Game Engine14 Στην συνάρτηση RocketProjectile::onCollision: function RocketProjectile::onCollision( %this, %obj, %col, %fade, %pos, %normal ) { echo("RocketProjectile::onCollision called! "); // For direct hits... apply damage to all shape base objects if( %col.getType() & $TypeMasks::ShapeBaseObjectType ) %col.damage( %obj, %pos, %this.directDamage, "Rocket" ); // For radius damage hits... use the radiusDamage utility function defined // by the radiusDamage.cs script to see if we our player or bot will take // any damage. radiusDamage( %obj, VectorAdd(%pos, VectorScale(%normal, 0.01)), %this.damageRadius, %this.radiusDamage, "Radius", 40 ); }

9 Ιουνίου 2009Torque Game Engine15 ΤΕΛΟΣ Τρέχουμε το παιχνίδι Αν όλα έχουν πάει καλά θα πρέπει να μπορούμε να ανατινάξουμε το bot καθώς και τον παίκτη μας (πυροβολώντας στα πόδια του)