Page 135 - PC Master τ. 280

135
PC Master
MovementSpeed και AdjustSpeedWith
Scaling. Η πρώτη είναι η καθαρή ταχύτητα
του Chris, ενώ η δεύτερη καθορίζει αν αυ-
τή η ταχύτητα επηρεάζεται από το ποσο-
στό του zoom. Αν την αφήσετε False, ο χα-
ρακτήρας σας θα τρέχει πολύ γρήγορα
όταν τον βλέπουμε από μακριά και πιο αρ-
γά όταν το zoom είναι μεγάλο. Πειραματι-
στείτε και πάλι με αυτές –αλλά και με την
AminationDelay– μέχρι να καταλήξετε
στην ταχύτητα που σας ικανοποιεί στις πε-
ρισσότερες περιπτώσεις, έχοντας υπόψη
ότι μπορείτε πάντα με την κατάλληλη
εντολή στο script να την αλλάξετε προσω-
ρινά αν συντρέχει ειδικός λόγος για μία
συγκεκριμένη οθόνη.
Μία πολύ σημαντική επίσης κατηγορία
περιοχών που πρέπει να ορίσετε, είναι αυ-
τή που ορίζει πίσω από ποια σημεία μπορεί
να περπατήσει ο χαρακτήρας σας. Αν δεν
χρωματίσετε σωστά αυτές τις περιοχές, ο
Chris θα σχεδιάζεται μπροστά από αντικεί-
μενα και θα φαίνεται σαν να περπατάει πά-
νω από έπιπλα και θάμνους. Στο Living
Room επιλέξτε από τα Room details το
Show this room’s->Walk-behinds. Παρατη-
ρήστε ποια σημεία στην οθόνη θέλετε να
σχεδιάζεται ο χαρακτήρας μας πίσω τους
καθώς περπατάει, και χρωματίστε τα. Προ-
σέξτε εδώ ένα λεπτό σημείο: Θέλουμε ο
χαρακτήρας μας, ενώ περπατάει, να σχε-
διάζεται πίσω από το αντικείμενο μόνο
όταν όντως βρίσκεται πίσω από αυτό.
Όταν βρίσκεται μπροστά του, θα πρέπει να
το καλύπτει. Πώς όμως θα καταλάβει το
παιχνίδι αυτήν τη διαφορά; Αρκεί να ορίσε-
τε το ύψος της οθόνης πάνω από το οποίο
ο παίκτης θα πρέπει να σχεδιάζεται πίσω
από τη Walk-behind area που ορίσατε. Η
νοητή αυτή γραμμή ονομάζεται Baseline
και στην αρχή για κάθε περιοχή βρίσκεται
στο πάνω μέρος της οθόνης. Εντοπίστε την
και φέρτε τη με drag & drop στο ύψος που
θέλετε. Δεν θα είναι πάντα προφανές ποιο
είναι αυτό, αφού εξαρτάται από τη θέση
που έχει το αντικείμενό μας σε σχέση με
τη walkable area. Μέχρι να αποκτήσετε
την απαραίτητη εμπειρία, θα χρειαστούν
πολλά trial & errors.
Θυμηθείτε τα Edges που έχετε ορίσει
στο δωμάτιο (μπορείτε ανά πάσα στιγμή
να τα δείτε επιλέγοντας Show this
room’s: Edges). Είναι χρήσιμο η walkable
area γενικά να βρίσκεται εντός των ορίων
των Edges και να ξεφεύγει από αυτό μό-
νο στις περιπτώσεις που επιθυμείτε να
προκαλέσετε μία αλλαγή στο παιχνίδι
όταν διαπερνά μία. Για παράδειγμα, μπο-
ρεί, όταν ο Chris φτάνει στο κάτω μέρος
της οθόνης, να θέλετε να βγαίνει από το
σαλόνι και να βρίσκεται στο χολ. Ας δού-
με πώς γίνεται αυτό: Αρχικά στα General
Settings του παιχνιδιού, κάτω από την κα-
τηγορία Backwards Compatibility βρείτε
το Use low-resolution co-ordinates in
script και θέστε το σε False. Με αυτόν
τον τρόπο οι συντεταγμένες στον κώδικά
σας θα συμπίπτουν με αυτές που βλέπετε
στον editor του δωματίου ως Mouse
Coordinates. Πίσω στο δωμάτιο, βεβαιω-
θείτε ότι το bottom edge του δωματίου
βρίσκεται λίγο πιο πάνω από το κάτω όριο
της walkable area, ώστε να μπορεί να το
διασχίσει ο χαρακτήρας. Στη συνέχεια,
από το Project Grid κάντε κλικ πάνω στο
εικονίδιο με τον κεραυνό, δηλαδή τα
Events του δωματίου, και διπλό κλικ στο
Walks off bottom edge. Στη συνάρτηση
που θα προκύψει, πληκτρολογήστε τα
εξής (προσαρμόζοντας προφανώς τις τι-
μές στα δικά σας δωμάτια):
player.ChangeRoom(4, 470, 454);
player.FaceLocation(player.x-50,
player.y);
Παρατηρήστε ότι τώρα στην εντολή
ChangeRoom δώσαμε τρεις μεταβλητές
αντί για μία. Αυτό συμβαίνει γιατί πλέον το
παιχνίδι μας είναι τρίτου προσώπου και δεν
αρκεί να λέμε στο πρόγραμμα ότι αλλά-
ζουμε δωμάτιο, πρέπει να το πληροφορού-
με και για το πού θα τοποθετηθεί ο χαρα-
κτήρας μας στο καινούργιο room. Προσοχή
μόνο αυτές οι συντεταγμένες να είναι μέ-
ρος της walkable area, διαφορετικά ο Chris
δεν θα κινείται. Με την εντολή
FaceLocation ορίζουμε πού θέλουμε να
κοιτάει ο χαρακτήρας όταν εμφανίζεται
στην οθόνη. Καλό θα είναι, για να μην απο-
προσανατολίζεται ο παίκτης, όταν εισέρχε-
ται κάπου να έχει πλάτη προς το σημείο
απ’ όπου μπήκε. Με τις τιμές player.x-50,
player.y, βεβαιωνόμαστε ότι ο Chris κοιτάει
προς τα αριστερά, διότι η είσοδος ήταν
από δεξιά. Στη θέση τους ασφαλώς θα
μπορούσαμε να είχαμε γράψει 420, 454,
απλώς θέλαμε να δείξουμε τις σχετικές με-
ταβλητές, καθώς είναι καλό να τις γνωρί-
ζετε για διαφορετικές περιπτώσεις.
Θυμηθείτε ότι στο προηγούμενο τεύχος
βγαίναμε από το σαλόνι ανοίγοντας μία
πόρτα. Τώρα που ο χαρακτήρας μας εμφα-
νίζεται στην οθόνη, καλό θα είναι να περ-
πατάει προς αυτήν αντί να αλλάζει στιγμι-
αία δωμάτιο. Επιλέξτε Show this room’s
-
>Hotspots και για το hotspot της πόρτας
βρείτε τη συνάρτηση hDoor_Interact που
είχαμε φτιάξει. Αυτή θα διαμορφωθεί ως
εξής:
player.Walk(473, 324, eBlock);
player.ChangeRoom(3, 171, 333);
Η εντολή Walk λέει στο χαρακτήρα μας
να περπατήσει μέχρι τις συγκεκριμένες
συντεταγμένες, ενώ με το eBlock τονί-
ζουμε ότι η επόμενη εντολή δεν θα εκτε-
λεστεί προτού φτάσει στον προορισμό
του.
Μέχρι την επόμενη φορά, θα ήταν καλό
να επανεξετάσετε όλες τις μεταβάσεις
από δωμάτιο σε δωμάτιο που φτιάξατε
μέχρι τώρα και να ορίσετε τις σωστές με-
ταβλητές, ώστε ο Chris να τοποθετείται
κάθε φορά στο σωστό σημείο. Επίσης, με
την εντολή Walk μπορείτε να τον κάνετε
να πλησιάζει σε κάθε hotspot ή object
προτού κάνει κάτι σε αυτό.
PC
Ορισμός της baseline μπροστά στο αντικείμενο.
Ο χαρακτήρας μας εμφανίστηκε μπροστά στην πόρτα, δεν είναι
όμως στραμμένος σωστά.
7
8