PC Master
136
τερες πληροφορίες για το πώς εργαζόμα-
στε με μεταβλητές, μπορούμε να ανατρέ-
ξουμε στο manual.
Μπορούμε να πειραματιστούμε με πε-
ρισσότερα αντικείμενα και, φυσικά, να
προσθέσουμε ακόμη μεγαλύτερη ποικιλία
αντιδράσεων, ορίζοντας μία μεταβλητή
που παίρνει τυχαίες τιμές με τον ίδιο
ακριβώς τρόπο που το κάναμε στην
cChris_Look(). Επίσης, είναι καλό να επι-
χειρούμε να εφαρμόζουμε σταδιακά όσα
συζητήσαμε στα προηγούμενα τεύχη. Ας
δούμε ένα παράδειγμα. Θέλουμε να πά-
ρουμε διαφορετική αντίδραση από τον
Chris όταν κάνουμε use την μπαλίτσα πά-
νω του αν εκείνη τη στιγμή δεν ακούει
μουσική και διαφορετική αν ακούει. Υπεν-
θυμίζω ότι έχουμε ορίσει μία global
variable για να ελέγχουμε αν το στερεο-
φωνικό του σαλονιού είναι σε λειτουργία,
ονόματι LivingRoomStereoOn. Διαμορφώ-
νουμε λοιπόν τον κώδικα της function
cChris_UseInv() ως εξής:
if (cChris.ActiveInventory==iball) {
if ((LivingRoomStereoOn==1) &&
(
cChris.Room==2)) Display(“No time to
play, you have work to do!”);
else Display(“There is a strange
humming sound coming from the
plastic ball.”);
}
else if (cChris.ActiveInventory==iBag
Nickels) Display(“Swallowing the nickels
is not a good idea.”);
else Display(“You are already carrying
the %s.”,cChris.ActiveInventory.Name);
Ας παρατηρήσουμε τον παραπάνω κώδι-
κα. Το σκεπτικό μας είναι το εξής: Έχουμε
μία πλαστική μπάλα, μέσα από την οποία
ακούγεται ένα ανεπαίσθητο βουητό, το
οποίο ο Chris ακούει μόνο όταν την κά-
νουμε use επάνω του (ίσως φέρνοντάς
την κοντά στο πρόσωπό του). Για να μπο-
ρέσει να το αντιληφθεί όμως, δεν θα πρέ-
πει εκείνη τη στιγμή να ακούγεται μουσι-
κή, επομένως απαραίτητη προϋπόθεση εί-
ναι να έχουμε κλειστό το στερεοφωνικό.
Δείτε ότι ελέγχουμε και κάτι ακόμη: αν ο
Chris βρίσκεται στο σαλόνι, με την παρά-
μετρο Room, διότι ασφαλώς αν είναι σε
κάποιον άλλο χώρο δεν θα τον επηρεάζει
το ότι το στερεοφωνικό του σαλονιού βρί-
σκεται σε λειτουργία. Το συγκεκριμένο
παράδειγμα είναι διδακτικό, διότι περιλαμ-
βάνει if-else statement μέσα σε if-else
statement, καθώς και δύο προϋποθέσεις
που οφείλουν να ικανοποιούνται ταυτό-
χρονα. Δώστε προσοχή στις παρενθέσεις
και τη σωστή επιλογή των συμβόλων. Ένα
λάθος σε if-else statement πολλές φορές
είναι δύσκολο να εντοπιστεί και μπορεί να
σας ταλαιπωρήσει.
Αρκετά όμως αφήσαμε τον πρωταγωνι-
στή μας να βολοδέρνει μόνος του στο
παιχνίδι. Ήρθε η ώρα να του βρούμε έναν
φίλο. Σχεδιάζουμε το χαρακτήρα που θέ-
λουμε και εισάγουμε αυτόν ή τα frames
του στο Sprites του Project Tree. Στη συ-
νέχεια, με δεξί κλικ στα Views επιλέγουμε
New View και αντιστοιχίζουμε τις εικόνες
που μόλις βάλαμε στο παιχνίδι με τα αντί-
στοιχα καρέ του χαρακτήρα. Τέλος, πάντα
στο Project Tree, κάνουμε δεξί κλικ στο
characters και επιλέγουμε New character.
To Real Name του θα είναι Bluntnose
Sixgill και το ScriptName του cBluntnose.
Αποφασίζουμε σε ποιο δωμάτιο θα βρί-
σκεται όταν ξεκινά το παιχνίδι, και αποθη-
κεύουμε. Μπορούμε να ακολουθήσουμε
την ίδια διαδικασία με προηγουμένως, για
να του ορίσουμε τις απαραίτητες αντιδρά-
σεις όταν κάνουμε Look, Use ή Use
inventory item πάνω του. Αυτή που μας
ενδιαφέρει περισσότερο τη δεδομένη
χρονική στιγμή είναι η εντολή Talk. Προ-
τού ασχοληθούμε μαζί της, θα δημιουργή-
σουμε τους πρώτους διαλόγους μας.
ΤΟ DIALOG SCRIPT
Πηγαίνουμε στο Dialogs του Project
Tree. Επιλέγοντας το 0, αριστερά πατάμε
στο Create new option. Θα κληθούμε να
συμπληρώσουμε ένα κενό πεδίο. Αυτή η
πρόταση που θα γράψουμε εκεί, θα είναι
η πρώτη επιλογή του διαλόγου. Μπορού-
με να προσθέσουμε όσες επιθυμούμε,
έχοντας στο μυαλό ότι η πρώτη επιλογή
είναι συνήθως ο χαιρετισμός και η τελευ-
ταία σηματοδοτεί τον τερματισμό του δια-
λόγου. Η επιλογή Show που βλέπετε δί-
πλα από κάθε πεδίο, δηλώνει αν η πρότα-
ση θα φαίνεται από την αρχή του παιχνιδι-
ού, αλλιώς θα πρέπει κάποια στιγμή να
ενεργοποιηθεί από κάποια άλλη πρόταση
ή από ένα εντελώς διαφορετικό σημείο
του κώδικα. Η επιλογή Say ορίζει αν ο
Chris διαβάζει την πρόταση όταν την επι-
λέγουμε. Σε διαφορετική περίπτωση, την
παραλείπει και συνεχίζει το διάλογο που
αντιστοιχεί σε αυτήν. Αυτό είναι χρήσιμο
για την περίπτωση που θέλουμε οι επιλο-
γές του διαλόγου μας να είναι της μορφής
«
ask about John».
Κάθε φορά που προσθέτουμε μία επιλο-
γή διαλόγου, στο παράθυρο δεξιά εμφανί-
ζεται ένας αριθμός δίπλα από το σύμβολο
@.
Αυτό σημαίνει ότι, για παράδειγμα, ό,τι
γράφετε κάτω από το @4 θα πραγματο-
ποιείται αν ο παίκτης πατήσει την τέταρτη
επιλογή διαλόγου. Ας δούμε μερικές από
τις σημαντικότερες εντολές ενός dialog
Οποιαδήποτε ομοιότητα με πραγματικά πρόσωπα και καταστάσεις δεν είναι εντελώς συμπτωμα-
τική.
Η έμπνευση για το όνομα του χαρακτήρα
προήλθε από ένα ντοκιμαντέρ.