Page 134 - PC Master τ. 287

PC Master
134
gDeb.Visible=0;
}
function Button8_OnClick(GUIControl
*
control, MouseButton button)
{
Debug(3,0);
gDeb.Visible=0;
}
function Button9_OnClick(GUIControl
*
control, MouseButton button)
{
Debug(1,0);
gDeb.Visible=0;
}
Φροντίζουμε να κλείνουμε το GUI κάθε
φορά που πατάμε οποιοδήποτε από τα πλή-
κτρα. Αυτό δεν είναι υποχρεωτικό, αλλά
προσφέρει ένα καθαρότερο αποτέλεσμα.
SILDERS KAI TEXT BOXES
Ας δούμε τι άλλο μπορούμε να προσθέ-
σουμε σε ένα GUI, εκτός από κουμπιά.
Υπάρχει περίπτωση να έχετε ενσωματώσει
στο παιχνίδι σας συνθήκες ελέγχου που
προβαίνουν σε κάποιες ενέργειες κάθε
φορά που ο παίκτης φτάνει σε συγκεκρι-
μένο σκορ. Ο καλύτερος τρόπος για να
ελέγξουμε ότι αυτές λειτουργούν σωστά
είναι να μπορούμε να αυξομειώσουμε το
σκορ μας κατά βούληση. Αυτό μπορεί να
γίνει με την προσθήκη ενός slider στο GUI
μας. Βρείτε το κουμπί Add GUI Slider και
με drag & drop σχεδιάστε το όπου θέλετε
στο panel σας. Στη συνέχεια, κάντε διπλό
κλικ πάνω του και στη συνάρτηση Slid-
er1_OnChange που θα δημιουργηθεί πλη-
κτρολογήστε:
game.score=Slider1.Value;
Σε αντίθεση με όταν αυξάνουμε το σκορ
του παίκτη με τη συνάρτηση GiveScore(),
η απευθείας αλλαγή της μεταβλητής δεν
συνοδεύεται από τον ήχο που έχουμε ορί-
σει για αυτή την περίπτωση.
Για να είναι περισσότερο ευανάγνωστο
το panel μας, καλό θα είναι να αναγράφε-
ται τι ακριβώς είναι αυτό το slider. Πατή-
στε πάνω στο κουμπί Add GUI Label και
αφού το τοποθετήσετε αριστερά από το
slider, αλλάξτε το Text σε Score: και το
χρώμα του font σε αυτό που επιθυμείτε,
με στόχο να φαίνεται ευκρινέστερα στο
φόντο του GUI σας.
Θυμάστε ότι στο τεύχος Ιουνίου είχαμε
δημιουργήσει τη menu bar, στην οποία
μεταξύ άλλων είχαμε προσθέσει μία μετα-
βλητή που περιέγραφε τη διάθεση που εί-
χε σε μία συγκεκριμένη στιγμή ο Chris;
Δεν θα ήταν κακή ιδέα να μπορούμε να
ελέγχουμε και αυτήν από το Debug GUI
μας. Για να το κάνουμε αυτό, θα χρησιμο-
ποιήσουμε ένα text box, δηλαδή ένα κου-
τάκι στο οποίο ο παίκτης μπορεί να πλη-
κτρολογήσει ό,τι θέλει και το παιχνίδι να
επεξεργαστεί τα δεδομένα. Σημειώστε
πως όσο γράφουμε σε ένα text box, δεν
καλείται η συνάρτηση on_key_press. Πα-
τήσετε πάνω στο κουμπί Add GUI Text Box
και τοποθετείστε το όπου σας εξυπηρετεί
πάνω στο panel. Επιλέξτε το χρώμα που
θέλετε, κάντε διπλό κλικ επάνω του και
στη συνάρτηση TextBox1_OnActivate που
θα δημιουργηθεί πληκτρολογήστε:
yourmood=TextBox1.Text;
TextBox1.Text=”“;
gDeb.Visible=0;
Η πρώτη πρόταση που πληκτρολογήσα-
με θέτει στη μεταβλητή της διάθεσης που
εμφανίζεται πάνω στη μπάρα την τιμή που
πληκτρολογούμε στο κουτάκι, ενώ η δεύ-
τερη καθαρίζει το κείμενο τη στιγμή που
πατάμε ENTER, ώστε την επόμενη φορά
που θα ανοίξουμε το panel μας να είναι κε-
νό. Παρατηρήστε εδώ τη σημασία που έχει
η σειρά με την οποία δίνουμε τις εντολές:
Αν αντιστρέφαμε τις δύο πρώτες, η τιμή θα
μηδένιζε πριν τη δώσουμε στη μεταβλητή
yourmood κι έτσι θα ήταν πάντα κενή,
ανεξαρτήτως τι πληκτρολογούσε ο παί-
κτης. Θυμηθείτε να προσθέστε και πάλι για
λόγους ευμορφίας ένα label αριστερά από
το text box που να γράφει τη λέξη Mood:
στο ίδιο χρώμα με προηγουμένως.
Κατά τη διάρκεια της εκπόνησης του
παιχνιδιού σας, θα χρειαστεί πολλές φο-
ρές να ελέγξετε αν τα έχετε κάνει όλα
καλά σε κάποιο απομακρυσμένο σημείο
του σεναρίου. Για να το καταφέρετε αυτό
χωρίς να χρειάζεται να ξεκινάτε κάθε φο-
ρά από την αρχή, δεν θα σας αρκούν πά-
ντα τα κουμπιά που έχουμε βάλει μέχρι
στιγμής στο Debug GUI, γιατί οι προϋπο-
θέσεις μπορούν να γίνουν περισσότερο
πολύπλοκες από ό,τι μπορούν να καλύ-
ψουν. Για παράδειγμα, μία αδυναμία της
λειτουργίας Teleport είναι ότι τοποθετεί
τον Chris στις ίδιες συντεταγμένες στις
οποίες βρισκόταν στο δωμάτιο από το
οποίο προήλθε. Δεν είναι καθόλου σίγου-
ρο όμως ότι οι συντεταγμένες αυτές στο
νέο δωμάτιο θα βρίσκονται εντός walka-
ble area, με συνέπεια να κινδυνεύετε να
μην μπορείτε να περπατήσετε. Επιπλέον,
ούτε το κουμπί προσθήκης όλων των in-
ventory items είναι πάντα χρήσιμο, αφού
πρώτον μπορεί σε κάποιο σημείο να έχετε
ως προϋπόθεση την απουσία ενός αντικει-
μένου και δεύτερον τι γίνεται αν στο sec-
tion που θέλετε να δοκιμάσετε υπάρχουν
αντικείμενα που θέλετε να αποκτήσετε;
Για να αποφύγουμε όλους αυτούς τους
σκοπέλους, θα πρέπει να έχουμε τη δυνα-
τότητα να ζητάμε πολύ συγκεκριμένα
πράγματα από τον κώδικά μας. Έτσι, συ-
νιστώ την προσθήκη περισσότερων κου-
μπιών γενικής χρήσης, τα οποία θα μετα-
βάλλουμε κάθε φορά αναλόγως με το τι
θέλουμε να δοκιμάσουμε.
Ας δούμε ένα συγκεκριμένο παράδειγ-
μα. Θέλουμε να δοκιμάσουμε το section
του παιχνιδιού στο οποίο ο Chris, έχοντας
πλέον παρεισφρήσει στις γραμμές των
εξωγήινων, έχει καταφέρει να παραβιάσει
την πόρτα του cockpit του διαστημοπλοί-
ου και ετοιμάζεται να το πιλοτάρει. Στο
σημείο εκείνο πρέπει να έχει το View που
αντιστοιχεί στη μεταμφίεσή του σε δα-
σκάλα τρίτης δημοτικού, να έχει στην κα-
τοχή του το καθρεφτάκι, το νεροπίστολο,
τον κυνόδοντα του αλιγάτορα και το λα-
στιχένιο παπάκι, να έχει ήδη ολοκληρώσει
το ρεπορτάζ του Comb U Press για τα
κομμωτήρια των δυτικών προαστίων και
φυσικά να μην βρίσκεται εκείνη την ώρα
η Claire στον ίδιο χώρο. Όλα αυτά θα τα
κάνουμε να πραγματοποιούνται μόνο με
το πάτημα ενός κουμπιού.
Πατήστε πάνω στο Add GUI Button και
τοποθετήσετε το κουμπί σας όπου σας
TO TIP
ΤΟΥ ΜΗΝΑ
Θέλετε να εμπλουτίσετε το παιχνίδι
σας με voice acting αλλά έχετε πολύ
μικρό ή μηδενικό προϋπολογισμό και
δεν έχετε ιδέα που να βρείτε αγγλό-
φωνους ηθοποιούς; Επισκεφτείτε το
και αναρ-
τήστε την audition σας. Θα διαπιστώ-
σετε πως υπάρχει ένας μεγάλος αριθ-
μός ηθοποιών που είναι πρόθυμοι να
δώσουν τη φωνή τους στους χαρα-
κτήρες σας για πολύ λογικό αντίτιμο,
ή ακόμα και με μόνο αντάλλαγμα την
εμπειρία και μία συστατική επιστολή.
Το TextBox Toggle Button.