PC Master
134
το δίλημμα στον παίκτη, όπως, για παρά-
δειγμα, μέσα από ένα μενού επιλογών,
απ’ όπου θα είχε τη δυνατότητα να ενερ-
γοποιεί ή να απενεργοποιεί τα hints κατά
βούληση. Αλλά για αυτό που έχουμε στο
μυαλό μας, το συγκεκριμένο GUI μας εξυ-
πηρετεί μια χαρά.
ΟΧΙ ΠΙΑ PIXEL HUNTING
Μία κλασική πλέον βοήθεια, που απα-
ντάται σε τόσα σύγχρονα adventure
games, ώστε να θεωρείται σχεδόν δεδο-
μένη από τους παίκτες, είναι αυτή του
hotspot indicator, δηλαδή ενός πλή-
κτρου που εμφανίζει όλα τα σημεία στα
οποία μπορεί να επιδράσει ο παίκτης.
Τον Αύγουστο του 2013, είχαμε περιγρά-
ψει πώς εισάγουμε ένα module που βρή-
καμε από το Ίντερνετ στον κώδικά μας.
Υπενθυμίζω ότι τα modules είναι ανεξάρ-
τητα τμήματα κώδικα που μπορούν να ει-
σαχθούν σε οποιοδήποτε παιχνίδι ικανο-
ποιεί τις προϋποθέσεις που θέτει ο δημι-
ουργός τους. Τότε λοιπόν είχαμε κάνει
αναφορά στο module ShowInterac-
tiveAreas, που εκτελεί αυτήν ακριβώς τη
λειτουργία. Για όσους δεν είχαν προμη-
θευτεί το συγκεκριμένο τεύχος, να πού-
με ότι το βρίσκετε στη διεύθυνση
Αφού αποσυ-
μπιέσετε το αρχείο που κατεβάσατε, από
το Project Tree επιλέξτε με δεξί κλικ
Scripts->Import Script και εισαγάγετε το
.
scm αρχείο. Αν σώσετε τώρα το PC Mas-
ter’s Saga και πατήσετε το space bar, θα
διαπιστώσετε ότι εμφανίζονται όλα τα
interactive σημεία του δωματίου. Για πε-
ρισσότερες οδηγίες σχετικά με το πώς
μπορεί να τροποποιηθεί το module, ώστε
να ταιριάζει καλύτερα στο template που
διαθέτουμε, ανατρέξτε στο αντίστοιχο
τεύχος. Εννοείται πως δεν χρειάζεται να
χρησιμοποιήσουμε κάποια συνθήκη ελέγ-
χου στη συγκεκριμένη λειτουργία, αφού
αν ο παίκτης δεν την επιθυμεί, μπορεί
απλώς να μην τη χρησιμοποιήσει.
ΑΓΑΠΗΤΟ ΜΟΥ ΗΜΕΡΟΛΟΓΙΟ
Μία ακόμα δημοφιλής λειτουργία στα
adventure games είναι αυτή του ημερο-
λογίου. Άλλες φορές αποτελεί μία απλή
καταγραφή των γεγονότων που έχουν
προηγηθεί κι άλλες βοηθά τον παίκτη να
ξεκολλήσεις δίνοντας hints. Εμείς μπο-
ρούμε να κάνουμε και τα δύο, με τη βοή-
θεια της global variable που ορίσαμε πα-
ραπάνω. Υπάρχει ένα πολύ καλό έτοιμο
module που μπορούμε να κατεβάσουμε
και θα το βρούμε στη διεύθυνση που
έχουμε αναφέρει και στο παρελθόν:
sources/modules.html. Αναζητήστε το
Journal’ Module 1.1 και κατεβάστε το
αρχείο. Αφού το αποσυμπιέσετε, μετονο-
μάστε το journalmodule_v1.1 σε jour-
nalmodule_v1.1.scm. Από το Project Tree
επιλέξτε με δεξί κλικ Scripts->Import
Script και εισαγάγετε το αρχείο αυτό. Για
να μπορέσετε να χρησιμοποιήσετε το συ-
γκεκριμένο module, θα πρέπει να σχε-
διάσετε ένα journal panel και να φτιάξε-
τε το σχετικό GUI. Θα χρειαστείτε ένα
αρκετά ευμέγεθες παράθυρο, δύο βελά-
κια για πάνω/κάτω κι ένα κουμπί κλεισί-
ματος. Μόλις ετοιμάσετε τις εικόνες, θα
τις εισαγάγετε στα sprites κατά τα γνω-
στά.
Πάμε τώρα να φτιάξουμε το GUI μας.
Όπως και προηγουμένως, δεξί κλικ από
το Project Tree στο GUIs-> New GUI. Από
το Appearance, πατήστε στο κουμπί δί-
πλα στο BackgroundImage και αντιστοι-
χίστε το sprite που φτιάξατε για το panel
σας. Το όνομα του GUI θα είναι gJournal
και το Visibility του θα οριστεί ως Nor-
mal, initially off. Αλλάξτε τις τιμές Left &
Top στο Layout, ώστε να το τοποθετήσε-
τε περίπου στο μέσο της οθόνης σας.
Διαλέξτε μία μεγάλη επιφάνεια στην
οποία θα εμφανίζεται το κείμενο, φροντί-
ζοντας να αφήσετε αρκετό χώρο για τα
buttons, πατήστε Add GUI Label και με
drag & drop φτιάξτε το περίγραμμα. Το
όνομα της ετικέτας θα είναι JournalLabel.
Μην ξεχάσετε να σβήσετε το text και να
επιλέξετε γραμματοσειρά και χρώμα που
θα κάνουν το κείμενο ευανάγνωστο.
Έπειτα, θα προσθέσουμε τα κουμπιά που
θα προχωρούν το κείμενο, ξεκινώντας
από το πάνω. Πατήστε στο Add GUI But-
ton και σχεδιάστε στο περίπου το περί-
γραμμα στη θέση που θέλετε να το τοπο-
θετήσετε. Δώστε του το όνομα Scroll_Up,
πατήστε στο πλήκτρο δίπλα στο Image
και επιλέξτε το sprite του – οι διαστάσεις
θα προσαρμοστούν αυτόματα σε αυτό.
Κάντε διπλό κλικ πάνω του και στη συ-
νάρτηση Scroll_Up_OnClick() που θα δημι-
ουργηθεί, πληκτρολογήστε:
if (JournalModule.IsChangeValid(-1))
JournalLabel.Text = JournalModule.
ChangePosition_GetJournalText(-1);
Με τον ίδιο ακριβώς τρόπο θα βάλουμε
και το scroll down button. Το όνομα που
θα του δώσετε θα είναι Scroll_Down και
αφού κάνετε διπλό κλικ πάνω του, στη
συνάρτηση Scroll_Down_OnClick() που θα
δημιουργηθεί, πληκτρολογήστε:
if (JournalModule.IsChangeValid(1))
JournalLabel.Text = JournalModule.
ChangePosition_GetJournalText(1);
Τέλος, τοποθετούμε το κουμπί κλεισί-
ματος, το οποίο φυσικά θα εκτελεί μόνο
την παρακάτω εντολή:
gJournal.Visible=0;
Ήρθε η ώρα να γράψουμε την πρώτη
καταχώριση στο ημερολόγιο. Επειδή αυτή
θα εμφανίζεται από την αρχή, θα την προ-
σθέσουμε στο ξεκίνημα του παιχνιδιού.
Από το Project Tree, κάντε διπλό κλικ στο
Scripts->GlobalScript.asc και αναζητήστε
τη συνάρτηση game_start(). Μέσα σε αυ-
τή, πληκτρολογήστε τα παρακάτω:
JournalModule.AddEntry(«Something
very weird is going on with at least
TO TIP ΤΟΥ ΜΗΝΑ
Αντί να περιορίσετε τον παίκτη σας στο δίλημμα hints or no hints, μπορείτε, αν
το επιθυμείτε, να βάλετε περισσότερες επιλογές. Προσαρμόστε το αρχικό panel
σας τοποθετώντας σε αυτό κλίμακες δυσκολίας, ας πούμε από το Very Easy ως
το Hard με μία αριθμητική μεταβλητή. Έπειτα, μπορείτε να τροποποιείτε τις κα-
ταχωρίσεις του ημερολογίου αντιστοίχως ή ακόμα και να έχετε προαιρετικούς
γρίφους.
Το Journal panel, όπως εμφανίζεται στο παι-
χνίδι.
Παίρνοντας την μπάλα, προκαλούμε καταχωρίσεις στο ημερολόγιο.