PC Master
134
περιγράμματος, κάτι που μπορεί να γίνει
και με απλό drag and drop επιτόπου, αν
και δεδομένου του μικρού μεγέθους του
είναι ίσως ευκολότερο να πειραματι-
στούμε με τις τιμές των Height, Width,
Left & Top.
Με τον ίδιο ακριβώς τρόπο, φτιάχνουμε
τα κουμπιά με τα οποία περιβάλλουμε τα
L, S και Ε. Είμαστε έτοιμοι να ορίσουμε τις
αντιδράσεις του παιχνιδιού όποτε ο παί-
κτης πατάει πάνω σε κάποιο από τα κου-
μπιά της μπάρας. Αν δεν είμαστε σίγουροι
με ποια εντολή ανοίγει το inventory, με
ποια κάνουμε load κ.λπ., υπάρχει ένας εύ-
κολος τρόπος να το ανακαλύψουμε: εξε-
τάζοντας το Global Script. Κάνουμε λοι-
πόν διπλό κλικ από το Project Tree στο
Scripts->GlobalScript.asc και αναζητούμε
τη συνάρτηση on_key_press(), η οποία,
όπως έχουμε πει, εκτελεί μία εντολή κά-
θε φορά που ο παίκτης πατά ένα πλή-
κτρο στο keyboard. Έτσι, εύκολα μπο-
ρούμε να δούμε τις εντολές που αντι-
στοιχούν στις λειτουργίες που θέλουμε
να επιτελέσουμε.
Επιστρέφουμε στο GUI μας και ξεκινάμε
με το γράμμα Ι. Κάνουμε διπλό κλικ πάνω
του, προσέχοντας να πετύχουμε το κου-
μπί και όχι την μπάρα που λειτουργεί ως
background. Στη συνάρτηση
Button1_OnClick που θα δημιουργηθεί,
πληκτρολογούμε το εξής:
SCUMM_VERBCOIN_GUI.GoInventory();
Σώζουμε τον κώδικά μας και επιστρέ-
φουμε στη gBar. Αυτήν τη φορά, κάνουμε
διπλό κλικ στο L. Στη συνάρτηση
Button2_OnClick που θα δημιουργηθεί,
πληκτρολογούμε το εξής:
RestoreGameDialog();
Συνεχίζοντας, κάνουμε διπλό κλικ στο S
και στη συνάρτηση Button3_OnClick που
δημιουργείται, γράφουμε:
SaveGameDialog();
Τέλος, κάνουμε διπλό κλικ στο E και
στη συνάρτηση Button4_OnClick πληκτρο-
λογούμε:
QuitGame(1);
Έχουμε αντιστοιχίσει τη σωστή λει-
τουργία σε καθένα από τα κουμπιά της
gBar. Απομένει να την ενεργοποιήσουμε
στο κατάλληλο χρονικό σημείο του παι-
χνιδιού, που στη δική μας περίπτωση είναι
αμέσως μετά το τέλος της εισαγωγής,
όταν συναντάμε τον Chris στο σαλόνι και
παίρνουμε για πρώτη φορά τον έλεγχό
του. Από το Project Tree λοιπόν βρίσκου-
με το πρώτο δωμάτιο στο οποίο ξεκινά το
παιχνίδι και στο Project Grid πατάμε στα
Events. Στο event First time enters room,
εκεί όπου είχαμε βάλει και την εντολή
τερματισμού της εισαγωγής, γράφουμε
την παρακάτω:
gBar.Visible=1;
Πλέον δεν έχουμε παρά να τρέξουμε το
παιχνίδι μας ώστε να βεβαιωθούμε ότι
όλα έγιναν σωστά. Δοκιάζουμε τα κου-
μπιά της μπάρας και επιβεβαιώνουμε πως
εμφανίζονται τα inventory, load, save και
quit ως οφείλουν. Χρήσιμο είναι να θυμό-
μαστε να απενεργοποιούμε την μπάρα σε
κάθε περίπτωση που δεν θέλουμε να εμ-
φανίζεται, για παράδειγμα, κατά τη διάρ-
κεια μίας cutscene, και να την ενεργοποι-
ούμε εκ νέου αμέσως μετά.
Πώς μπορούμε να αξιοποιήσουμε το χώ-
ρο που περισσεύει στο δεξί μέρος της
μπάρας μας; Ας δούμε τις επιλογές που
μας προσφέρει το AGS. Εφόσον έχουμε
αποφασίσει το παιχνίδι μας να διαθέτει
TO TIP
ΤΟΥ ΜΗΝΑ
Όσο χρήσιμα και αν είναι τα global
variables, σε ένα μεγάλο παιχνίδι
πολλές εκατοντάδες μεταβλητών
μπορεί να μας μπερδέψουν και να
μας οδηγήσουν σε conflicts. Προ-
σπαθήστε να αποφεύγουμε τον ορι-
σμό global variable όταν υπάρχουν
εναλλακτικές λύσεις. Για παράδειγ-
μα, αντί να χρησιμοποιήσουμε μετα-
βλητή για τη στιγμή που ο χαρακτή-
ρας μας μπαίνει για πρώτη φορά σε
ένα δωμάτιο, μπορούμε να χρησιμο-
ποιήσουμε τη συνάρτηση
HasPlayerBeenInRoom. Επίσης, αν
γνωρίζουμε την ακριβή στιγμή στην
οποία ο χαρακτήρας θα αποκτήσει
ένα αντικείμενο, μπορούμε να εξε-
τάζουμε αν ο παίκτης έχει φτάσει
σε αυτό το κομβικό σημείο με τη
βοήθεια της εντολής HasInventory.
Ο κώδικας των buttons της μπάρας μας.
Εισάγοντας μία καταλληλότερη γραμματοσει-
ρά.
Θα χρειαστούν αρκετές προσπάθειες μέχρι να βρούμε τις σωστές διαστάσεις και θέσεις των
labels.