139
PC Master
=, ενώ όταν ορίζετε την τιμή, χρησιμοποι-
είται ένα. Να πούμε σε αυτό το σημείο ότι
θα μπορούσαμε να είχαμε χρησιμοποιήσει
και μία απλή μεταβλητή που θα είχε ισχύ
μόνο στο συγκεκριμένο δωμάτιο, όμως
επιλέξαμε αυτό τον τρόπο για διδακτι-
κούς λόγους. Για περισσότερες πληροφο-
ρίες σχετικά με τη σύνταξη απλών εντο-
λών ανατρέξτε στα σχετικά sections του
manual. Προς το παρόν, δοκιμάστε να
τρέξετε το παιχνίδι σας για να βεβαιωθεί-
τε ότι μπορείτε πλέον να ανοιγοκλείνετε
το στερεοφωνικό του σαλονιού όποτε το
επιθυμείτε.
Όλα τα παραπάνω είναι διδακτικά για
έναν ακόμα λόγο: Χρησιμοποιήσαμε μία
μεθοδολογία που καλό θα είναι να έχου-
με ως πρότυπο από δω και στο εξής. Θε-
λήσαμε να εισαγάγουμε μία λειτουργία
στο παιχνίδι μας. Το κάναμε και τρέξαμε
το παιχνίδι ώστε να δοκιμάσουμε αν την
φτιάξαμε σωστά. Διαπιστώσαμε όμως ότι
δεν μας ικανοποιούσε ο τρόπος με τον
οποίο δούλευε, κι έτσι επιστρέψαμε στον
κώδικά μας, ώστε να προσθέσουμε κι άλ-
λα στοιχεία. Αυτός είναι γενικά ο τρόπος
με τον οποίο οφείλουμε να λειτουργούμε,
γιατί στην πορεία θα δείτε ότι πάρα πολ-
λά πράγματα δεν είναι εμφανή από την
αρχή και μόνο δοκιμάζοντας μέσα από το
παιχνίδι έχετε ολοκληρωμένη εικόνα.
ΑΝΤΙΚΕΙΜΕΝΑ ΣΤΗΝ ΟΘΟΝΗ ΚΑΙ
ΤΟ INVENTORY
Όταν έχετε μπροστά σας ένα παιχνίδι
ως παίκτης, σκέφτεστε τα αντικείμενα ως
κάτι που μπορείτε να επεξεργαστείτε ή
και να πάρετε μαζί σας. Από την πλευρά
του προγραμματιστή, τα πράγματα είναι
λίγο διαφορετικά. Αντικείμενο στο AGS εί-
ναι κάτι που τοποθετούμε στο χώρο και
αποτελεί διαφορετικό γραφικό από το
background. Αυτό δεν σημαίνει απαραίτη-
τα ότι ο end user το αντιλαμβάνεται έτσι.
Για παράδειγμα, όταν ανάβετε μία λάμπα,
μπορεί να θέλετε να εμφανιστεί μία δέ-
σμη φωτός στο χώρο. Ένας τρόπος για να
το πετύχετε αυτό είναι να ενεργοποιήσε-
τε ένα γραφικό που προϋπήρχε αλλά δεν
ήταν ορατό, το οποίο να απεικονίζει την
ακτίνα αυτή. Το γραφικό αυτό θα είναι
ένα αντικείμενο κι ας φαίνεται εκείνη τη
στιγμή ως μέρος του φόντου. Στη συνέ-
χεια θα δούμε πώς δημιουργούμε ένα
αντικείμενο και πώς το παίρνουμε στο
inventory μας.
Το πρώτο πράγμα που χρειάζεστε
ασφαλώς είναι η εικόνα του αντικειμέ-
νου. Προσοχή μόνο να έχει το σωστό μέ-
γεθος σε σχέση με την ανάλυση του παι-
χνιδιού σας. Στην περίπτωσή μας, έχουμε
να κάνουμε με ένα τόπι και είναι αρχείο
PNG με διάφανο background – αυτό εξυ-
πηρετεί πολύ όταν εισάγουμε εικόνες
objects. Πατήστε την πρώτη λέξη του
Project Tree που είναι το Sprites, κάντε
δεξί κλικ σε ένα κενό σημείο και επιλέξ-
τε Import new sprite from file. Αφού ει-
σαγάγετε την εικόνα σας, θα έχετε την
επιλογή να την πάρετε ολόκληρη ή τμή-
μα της.
Θέλουμε το τόπι να μπορούμε να το πά-
ρουμε πάνω μας, συνεπώς πρέπει να το
ορίσουμε ως inventory item. Βρείτε τη
σχετική φράση στο Project Tree. Υπάρ-
χουν ήδη κάποια αντικείμενα στο παιχνίδι
μας, αλλά μπορούμε να αντικαταστήσου-
με ένα. Επιλέξτε το iBalloons και αλλάξτε
το Description και το Name σε ball και
iball, αντίστοιχα. Έπειτα πατήστε στο
κουμπί με τις τρεις τελείες δίπλα στο
Image και βρείτε την εικόνα που εισαγά-
γατε νωρίτερα. Κάντε το ίδιο και για το
CursorImage, αυτό είναι το γραφικό στο
οποίο θα αλλάζει ο cursor όταν κρατάτε
το τόπι. Καλό θα είναι να είναι μία μικρό-
τερη έκδοση του ίδιου sprite. Πατήστε
στα Events και με το Look at inventory
item γράψτε τι θέλετε να διαβάζει ο παί-
κτης όταν κάνει Examine στο τόπι. Ολο-
κληρώστε θέτοντας την τιμή
PlayerStartsWithItem σε False, αφού δεν
θέλετε να έχετε το αντικείμενο με το ξε-
κίνημα του παιχνιδιού.
Πηγαίνετε στο δωμάτιο House και επι-
λέξτε Show this room’s>Objects. Βρείτε
σε ποιο σημείο θέλετε να τοποθετήσετε
το τόπι, κάντε δεξί κλικ και επιλέξτε
Place New Object Here. Στην αρχή το
αντικείμενο εμφανίζεται ως ένα μπλε φλι-
τζάνι. Αλλάξτε του Description, Name και
εικόνα από το Project Grid. Στη συνέχεια
μπορείτε να του ορίσετε interactions με
τον ίδιο τρόπο που δουλέψαμε με τα
hotspots. Δώστε του μία ευφάνταστη πε-
ριγραφή με το Look at object και στο
Interact object πληκτρολογήστε τα εξής:
oBall.Visible=False; // παίρνουμε το
τόπι, εξαφανίζεται από την οθόνη
player.AddInventory(iball); //
εμφανίζεται το inventory item που
αντιστοιχεί στο τόπι
GiveScore(5); // το σκορ μας αυξάνεται
κατά 5 μονάδες
Ώρα να σώσετε το παιχνίδι σας και να
επιχειρήσετε να το τρέξετε. Όμως, εμφα-
νίζει σφάλμα! Τι πήγε στραβά; Δείτε το
output window στο κάτω μέρος της οθό-
νης και κάντε διπλό κλικ πάνω στο σφάλ-
μα για να μεταβείτε σε αυτό. Θα δείτε ότι
κάπου στον κώδικα υπήρχε το αντικείμε-
νο iBalloons που μετονομάσατε. Μάθαμε
λοιπόν ότι δεν είναι καλή ιδέα να πειρά-
ζουμε ένα όνομα που πιθανόν να χρησι-
μοποιείται κάπου. Για να προσπεράσουμε
με έναν πρόχειρο τρόπο αυτό το σκόπε-
λο, αλλάζουμε το iBalloons σε iball, που
ξέρουμε σίγουρα ότι υπάρχει. Λογικά τώ-
ρα το save θα πιάσει και το παιχνίδι θα
εκτελεστεί χωρίς πρόβλημα.
Το PC Master’s Saga είναι ακόμα σε νη-
πιακό στάδιο, μπορείτε όμως κιόλας να
δημιουργήσετε όσα δωμάτια θέλετε, να
κυκλοφορείτε σε αυτά, να επιδράτε σε
hotspots και να παίρνετε αντικείμενα.
Μέχρι την επόμενη φορά, καλή εξάσκηση!
PC
Το αντικείμενο πρέπει να φαίνεται σω-
στά σε σχέση με την ανάλυση του
background.
Το τρίπτυχο «εξαφάνισε αντικείμενο – βάλ’ το στο inventory – δώσε σκορ» είναι από τα πιο
κλασικά κομμάτια κώδικα σε adventure game.
8
7