135
PC Master
φανίσουμε μία οθόνη εισαγωγής με το
logo της επιλογής μας, θα μεταβούμε σε
ένα δωμάτιο όπου ένα αγοράκι ονόματι
Jerry έχει να μας πει μερικά ενδιαφέρο-
ντα πράγματα.
Το πρώτο πράγμα που θα κάνουμε είναι
να ορίσουμε μία Global variable, η οποία
θα μας ενημερώνει για το αν παρακολου-
θούμε την εισαγωγή. Αυτό μας χρησιμεύει
στο εξής: Όταν επισκεφτούμε ένα δωμά-
τιο κατά τη διάρκεια του Introduction, πι-
θανότατα θα έχουμε τοποθετήσει σε αυτό
χαρακτήρες, αντικείμενα, θα εκκινήσουμε
κάποιο διάλογο κ.λπ. Αντί να μπούμε
στον κόπο να τα αναιρέσουμε όλα αυτά
με το πέρας της εισαγωγής, είναι πολύ πιο
πρακτικό να σημειώσουμε στον κώδικά
μας ότι θα εκτελεστούν μόνο εφόσον αυ-
τή τρέχει. Από το Project Tree, λοιπόν,
μεταβαίνουμε στο Global variables και κά-
νοντας δεξί κλικ στο παράθυρο επιλέγου-
με Add new variable. Θα την ονομάσουμε
IsIntroPlaying με αρχική τιμή μηδέν.
Έχοντας σχεδιάσει τις εικόνες των δύο
δωματίων που θα χρειαστούμε, στο
Project Tree κάνουμε δεξί κλικ στο
Rooms και επιλέγουμε New Room και
Blank Room. Στη συνέχεια κάνουμε Edit
Room και επιλέγουμε την εικόνα που
απεικονίζει το λογότυπο του Adventure
Game Studio, πατώντας το πλήκτρο
Change, που βρίσκεται στο πάνω μέρος
της οθόνης. Επειδή πρόκειται για μία ει-
σαγωγική εικόνα, φυσικά δεν επιθυμούμε
να εμφανίζεται ο χαρακτήρας μας, συνε-
πώς στο Project Grid κάτω από το υπομε-
νού Settings θέτουμε την επιλογή
ShowPlayerCharacter σε False. Αυτό που
θέλουμε είναι να εμφανιστεί η οθόνη για
μερικά δευτερόλεπτα και στη συνέχεια να
μεταβούμε στο επόμενο δωμάτιο. Από το
Project Grid, λοιπόν, πατάμε το πλήκτρο
των Events και στη συνέχεια αυτό που
βρίσκεται δίπλα στην επιλογή Enters
room before fade-in. Στη συνάρτηση
function room_Load() που ανοίγει, πλη-
κτρολογούμε:
IsIntroPlaying=1;
StartCutscene(eSkipESCOnly);
SetTimer(1, 100);
Ξανά στα Events, τώρα, παρατηρήστε
ότι υπάρχει κι εδώ η συνάρτηση
Repeatedly execute, που συζητήσαμε
προηγουμένως για το Global Script. Πατή-
στε στο κουμπί δίπλα της και στη συνάρ-
τηση room_RepExec() πληκτρολογήστε:
if (IsTimerExpired(1))
cChris.ChangeRoom(9);
Τα ονόματα των εντολών που χρησιμο-
ποιούμε είναι προφανή, παρ’ όλα αυτά εί-
ναι χρήσιμο να συμβουλεύεστε τις οδη-
γίες του προγράμματος για κάθε καινούρ-
για συνάρτηση που συναντάτε.
Ακολουθώντας την ίδια διαδικασία, δημι-
ουργούμε το δωμάτιο στο οποίο θα συνεχι-
στεί η εισαγωγή. Φυσικά και εδώ θέτουμε
το ShowPlayerCharacter σε False. Αφού
δημιουργήσουμε τη walkable area, παρα-
τηρούμε τις συντεταγμένες στο ακριβές
σημείο όπου θέλουμε να στέκεται ο και-
νούργιος χαρακτήρας μας και πάμε να τον
φτιάξουμε. Εισάγουμε τις εικόνες του στα
sprites και στη συνέχεια με δεξί κλικ στο
Views του Project Tree επιλέγουμε New
View και φτιάχνουμε τις όψεις του χαρα-
κτήρα. Έπειτα, δεξί κλικ στο characters
του Project Tree και New character. Το
όνομά του θα είναι Jerry, θα έχει το αντί-
στοιχο view και θα ξεκινά στο δωμάτιο της
εισαγωγής (στο παράδειγμά μας, το 9). Θέ-
λουμε με το που ανοίξει το πλάνο, ο Jerry
να ξεκινήσει να μιλάει. Επειδή πρόκειται
για μονόλογο, δεν είναι απαραίτητο να δη-
μιουργήσουμε καινούργιο διάλογο. Στο
δωμάτιο όπου τον έχουμε τοποθετήσει,
πατάμε το κουμπί δίπλα στο Enters room
after fade-in και στη συνάρτηση
room_AfterFadeIn() πληκτρολογούμε:
if (IsIntroPlaying==1) {
cJerry.Say("This used to be my room.");
cJerry.Say("It didn't always look like
this.");
cJerry.Say("Mrs. Hopkings, my third
grade teacher, had something to do
with its current state.");
cJerry.Say("It all started when I noticed
a weird reflection on her eyes...");
Wait(100);
IsIntroPlaying=0;
cChris.ChangeRoom(2);
}
Δεν ξεχνάμε, πριν τρέξουμε το παιχνίδι
μας, να θέσουμε την επιλογή
StartingRoom του Chris στην πρώτη οθό-
νη της εισαγωγής. Αν και οι συντεταγμέ-
νες δεν έχουν σημασία, αφού δεν εμφανί-
ζεται, είναι καλή ιδέα να γράφετε αυτές
που θέλετε να έχει στο πρώτο δωμάτιο
στο οποίο θα φαίνεται. Έτσι, δεν θα χρει-
αστεί να τις ορίσετε μέσα στον κώδικα
πριν από τη λήξη της εισαγωγής. Τέλος,
τοποθετήστε την εντολή EndCutscene()
στο First time enters room event του δω-
ματίου στο οποίο καταλήγει ο Chris μετά
το μονόλογο του Jerry.
Είστε έτοιμοι να τρέξετε το παιχνίδι και
να απολαύσετε το introduction που δημι-
ουργήσατε.
PC
ΣΤΑ ΠΡΟΗΓΟΥΜΕΝΑ ΤΕΥΧΗ
ΔΕκEΜβΡΙΟΣ 2012:
Αρχικοποίηση adventure game, δημιουργία δωματίου,
ορισμός hotspots.
ΙΑΝΟΥAΡΙΟΣ 2013:
Έξοδοι δωματίων, hotspot interaction, συνθήκες ελέγχου,
global variables, αντικείμενα, inventory items.
ΦΕβΡΟΥAΡΙΟΣ 2013:
Δημιουργία χαρακτήρων, walkable areas, scaling
levels, walk-behinds.
ΜΑΡΤΙΟΣ 2013:
Character interaction, αλληλεπίδραση inventory-χαρακτή-
ρων, δημιουργία διαλόγων.
ΑΠΡΙΛΙΟΣ 2013: Global script, συναρτήσεις on_key_press(), dialog_request()
και unhandled_event(), διαχείριση room events.
Κερδίστε τους παίκτες σας από το πρώτο λεπτό με ένα δυνατό introduction.