Παράθυρα και άλλα αντικείμενα ελέγχου


Παράθυρα

Τα παράθυρα είναι η βάση όλων των αντικειμένων που διαθέτει η WME για την δημιουργία ενός πλήρους διαδραστικού γραφικού περιβάλλοντος. Φανταστείτε το σαν ένα ορθογώνιο πλαίσιο στην οθόνη σας που μπορεί να περιλαμβάνει άλλα αντικείμενα ή ακόμα και άλλα παράθυρα. Η γραφική αναπαράσταση ενός παραθύρου είναι πλήρως παραμετροποιήσιμη ώστε να μπορείτε να τους δώσετε ό,τι εμφάνιση θέλετε ώστε να ταιριάζει στο παιχνίδι σας.

Τα παράθυρα προσδιορίζονται μέσα από ένα απλό αρχείο κειμένου με την κατάληξη .window. Ας δούμε όμως τη δομή ενός τέτοιου αρχείου. Αρχικά υπάρχει ο τίτλος και στη συνέχεια οι ιδιότητες του παραθύρου. Υπάρχουν πολύ παράμετροι διαθέσιμοι αλλά δεν χρειάζεται να τους χρησιμοποιήσετε όλους καθώς οι περισσότεροι έχουν κάποια προκαθορισμένη τιμή. Είναι απαραίτητο να ορίσετε μόνο τις ιδιότητες που θέλετε να αλλάξετε σε σχέση με τις τιμές που ήδη έχουν.

WINDOW
{
 NAME = "MyWindow"
 TEMPLATE = "templates\MyTemplate.window"

 ; θέση και μέγεθος
 X = 200
 Y = 200
 WIDTH = 240
 HEIGHT = 150

 ; κατάσταση παραθύρου
 VISIBLE = TRUE
 DISABLED = FALSE

 ; τίτλος
 TITLE = "Το καινούριο μου παράθυρο"
 TITLE_RECT { 5,5,235,45 }
 TITLE_ALIGN = left

 DRAG_RECT { 0,0,215,25 }
 
 ; φόντο
 BACK = "path\window.image"
 BACK_INACTIVE = "path\window_inactive.image"
 
 IMAGE = "path\window.sprite"
 IMAGE_INACTIVE = "path\window_inactive.sprite"

 ; γραμματοσειρές
 FONT = "fonts\outline_white.font"
 FONT_INACTIVE = "fonts\outline_gray.font"

 ; κέρσορας
 CURSOR = "path\arrow.sprite"
 
 ; script
 SCRIPT = "path\MyWindow.script"
 
 ; επιπλέον ιδιότητες
 TRANSPARENT = FALSE
 MENU = FALSE
 IN_GAME = FALSE
 CLIP_CONTENTS = TRUE
 
 ; διαβάθμιση φόντου
 FADE_COLOR { 255, 0, 0 }
 FADE_ALPHA = 255
 
 PAUSE_MUSIC = TRUE
}

Επεξήγηση:

Μετά τις παραπάνω βασικές ρυθμίσεις το αρχείο προσδιορισμού ενός παραθύρου δέχεται επιπλέον προσδιορισμούς για άλλα αντικείμενα ελέγχου. Για παράδειγμα η ακόλουθη περιγραφή θα τοποθετήσει ένα κουμπί μέσα στο παράθυρο. Η επεξήγηση των περιγραφών που μπορεί να δεχθεί ένα παράθυρο περιγράφονται με λεπτομέρειες στη συνέχεια του κεφαλαίου. Αξίζει να σημειωθεί ότι ένα παράθυρο μπορεί να περιλαμβάνει και άλλα παράθυρα μέσα σε αυτό.

 BUTTON
 {
 NAME = "MyButton"
 TEXT = "Κουμπί"
 X = 40
 Y = 100
 WIDTH = 70
 HEIGHT = 30
 }

Ολοκληρωμένα αρχεία προσδιορισμού παραθύρων μπορείτε να βρείτε στο φάκελο "interface\system" του παιχνιδιού επίδειξης της WME. Αξίζει να σημειωθεί ότι δεν χρειάζεται να γράφετε κάθε αρχείο προσδιορισμού από την αρχή καθώς υπάρχει έτοιμο πρότυπο για χρήση από τον ProjectMan (μάθετε περισσότερα για τον ProjectMan).

Δείτε επίσης: τον οδηγό αναφοράς για το Αντικείμενο παράθυρο


Κουμπιά

Τα κουμπιά μπορούν να έχουν διάφορες εμφανίσεις. Μπορούν να είναι είναι γραφικά είτε παραλληλόγραμμα με κείμενο στο εσωτερικό του, ή ένας συνδυασμός των δύο. Όπως ισχύει και με τα παράθυρα, τα πλήκτρα μπορούν να έχουν ότι μορφή θέλετε ώστε να ταιριάζουν στο παιχνίδι σας.

Οι περιγραφές των κουμπιών είναι τμήμα των αρχείων περιγραφής παραθύρων .window (δείτε την προηγούμενη παράγραφο). Ας δούμε ένα παράδειγμα περιγραφής κουμπιού. Αρχικά υπάρχει ο τίτλος και στη συνέχεια οι ιδιότητες του κουμπιού που όμως δεν είναι απαραίτητο να τις χρησιμοποιήσετε όλες καθώς έχουν ορισμένη κάποια προκαθορισμένη τιμή. Είναι απαραίτητο να ορίσετε μόνο τις ιδιότητες που θέλετε να αλλάξετε σε σχέση με τις τιμές που ήδη έχουν.

BUTTON
{
 NAME = "MyButton"
 TEMPLATE = "templates\MyTemplate.button"

 ; θέση και μέγεθος (σχετικά με τη θέση του παραθύρου)
 X = 100
 Y = 100
 WIDTH = 200
 HEIGHT = 50

 ; κατάσταση κουμπιού
 VISIBLE = TRUE
 DISABLED = FALSE
 PRESSED = FALSE
 FOCUSABLE = FALSE

 ; κείμενο
 TEXT = "Το καινούριο μου παράθυρο"
 TEXT_ALIGN = "center"
 
 ; φόντο
 BACK = "path\button.image"
 BACK_DISABLE = "path\button_disable.image"
 BACK_FOCUS = "path\button_focus.image"
 BACK_HOVER = "path\button_hover.image"
 BACK_PRESS = "path\button_press.image"
 
 IMAGE = "path\button.sprite"
 IMAGE_DISABLE = "path\button_disable.sprite"
 IMAGE_FOCUS = "path\button_focus.sprite"
 IMAGE_HOVER = "path\button_hover.sprite"
 IMAGE_PRESS = "path\button_press.sprite"
 
 CENTER_IMAGE = TRUE

 ; γραμματοσειρές
 FONT = "fonts\outline_white.font"
 FONT_DISABLE = "fonts\outline_gray.font"
 FONT_FOCUS = "fonts\outline_white.font"
 FONT_HOVER = "fonts\outline_red.font"
 FONT_PRESS = "fonts\outline_red.font"
 
 ; script
 SCRIPT = "path\MyButton.script"
 
 ; κέρσορας
 CURSOR = "path\arrow.sprite"
 
 ; επιπλέον ιδιότητες
 PARENT_NOTIFY = TRUE
 PIXEL_PERFECT = TRUE
} 

Επεξήγηση:

Ολοκληρωμένα αρχεία προσδιορισμού κουμπιών μπορείτε να βρείτε στο φάκελο "interface\system" του παιχνιδιού επίδειξης της WME. Αξίζει να σημειωθεί ότι δεν χρειάζεται να γράφετε κάθε αρχείο προσδιορισμού από την αρχή καθώς υπάρχει έτοιμο πρότυπο για χρήση από τον ProjectMan (μάθετε περισσότερα για τον ProjectMan).

Δείτε επίσης: τον οδηγό αναφοράς για το Αντικείμενο κουμπί


Φόρμες εισαγωγής κειμένου

Το αντικείμενο το αναπαριστά μία γραμμή εισαγωγής κειμένου. Ο χρήστης μπορεί να εισάγει σε αυτές τις φόρμες κείμενο, να επιλέξει κάποιο τμήμα αυτού και να εκτελέσει τις γνωστές διαδικασίες αντιγραφή/επικόλληση από και προς το clipboard των windows. Όπως και στην περίπτωση των παραθύρων και των άλλων αντικειμένων, μπορείτε να δώσετε στις φόρμες αυτές ότι εμφάνιση θέλετε ώστε να ταιριάξουν στο παιχνίδι σας.

Οι περιγραφή τους είναι πάντοτε τμήμα των αρχείων .window (δείτε παραπάνω). Ας δούμε ένα παράδειγμα περιγραφής μιας τέτοιας φόρμας. Αρχικά υπάρχει ο τίτλος και στη συνέχεια οι ιδιότητες του που όμως δεν είναι απαραίτητο να τις χρησιμοποιήσετε όλες καθώς έχουν ορισμένη κάποια προκαθορισμένη τιμή. Είναι απαραίτητο να ορίσετε μόνο τις ιδιότητες που θέλετε να αλλάξετε σε σχέση με τις τιμές που ήδη έχουν.

EDIT
{
 NAME = "MyEditor"
 TEMPLATE = "templates\MyTemplate.editor"

 ; θέση και μέγεθος (σχετικά με τη θέση του παραθύρου)
 
 X = 100
 Y = 100
 WIDTH = 200
 HEIGHT = 50

 ; κατάσταση φόρμας
 VISIBLE = TRUE
 DISABLED = FALSE

 ; κείμενο
 TEXT = "Η κανούρια μου φόρμα"
 
 ; φόντο
 BACK = "path\editor.image"
 
 IMAGE = "path\editor.sprite"
 
 ; γραμματοσειρές
 FONT = "fonts\outline_white.font"
 FONT_SELECTED = "fonts\outline_red.font"
 
 ; script
 SCRIPT = "path\MyEditor.script"
 
 ; κέρσορας
 CURSOR = "path\beam.sprite"
 
 ; επιπλέον ιδιότητες
 PARENT_NOTIFY = TRUE
 MAX_LENGTH = 100
 FRAME_WIDTH = 2
 CURSOR_BLINK_RATE
} 

Επεξήγηση:

Για ολοκληρωμένες περιγραφές φορμών ελέγξτε ορισμένα από τα αρχεία προσδιορισμού των παραθύρων που βρίσκονται στο φάκελο "interface\system" του παιχνιδιού επίδειξης της WME.

Δείτε επίσης: τον οδηγό αναφοράς για το Αντικείμενο φόρμα εισαγωγής κειμένου


Static controls

Τα static controls αναπαριστούν διάφορα μη διαδραστικά διακοσμητικά στοιχεία των παραθύρων όπως επικεφαλίδες ή εικονίδια. Όπως και στην περίπτωση των παραθύρων και των άλλων αντικειμένων, μπορείτε να τους δώσετε ό,τι εμφάνιση θέλετε ώστε να ταιριάξουν στο παιχνίδι σας.

Οι περιγραφές των static controls είναι πάντοτε τμήμα των αρχείων .window (δείτε παραπάνω). Ας δούμε ένα παράδειγμα μίας τέτοιας περιγραφής. Αρχικά υπάρχει ο τίτλος και στη συνέχεια οι ιδιότητες που όμως δεν είναι απαραίτητο να τις χρησιμοποιήσετε όλες καθώς έχουν ορισμένη εξαρχής κάποια προκαθορισμένη τιμή. Είναι απαραίτητο να ορίσετε μόνο τις ιδιότητες που θέλετε να αλλάξετε σε σχέση με τις τιμές που ήδη έχουν.
STATIC
{
 NAME = "MyStatic"
 TEMPLATE = "templates\MyTemplate.static"

 ; θέση και μέγεθος (σχετικά με τη θέση του παραθύρου)
X = 100 Y = 100 WIDTH = 200 HEIGHT = 50 ; κατάσταση του αντικειμένου VISIBLE = TRUE DISABLED = FALSE ; κείμενο TEXT = "Ένα static control" TEXT_ALIGN = left ; φόντο BACK = "path\static.image" IMAGE = "path\static.sprite" ; γραμματοσειρές FONT = "fonts\outline_white.font" ; script SCRIPT = "path\MyStatic.script" ; κέρσορας CURSOR = "path\arrow.sprite" }

Επεξήγηση:

Για ολοκληρωμένες περιγραφές των static controls ελέγξτε ορισμένα από τα αρχεία προσδιορισμού των παραθύρων που βρίσκονται στο φάκελο "interface\system" του παιχνιδιού επίδειξης της WME.

Δείτε επίσης: τον οδηγό αναφοράς για το Αντικείμενο static control


Entity containers

Η entity container είναι ένα ειδικό εργαλείο που σας επιτρέπει να ενσωματώσετε ανεπτυγμένα διαδραστικά αντικείμενα, δηλαδή entities, στο γραφικό περιβάλλον χειρισμού. Με αυτό τον τρόπο μπορείτε να έχετε "έξυπνα" αντικείμενα μέσα στα παράθυρα. Πιθανές χρήσεις είναι, για παράδειγμα, inventory όπως αυτό του Runaway (με χαρακτήρα που μιλάει) ή κοντινά πλάνα από τα αντικείμενα (μάθετε περισσότερα για τις entities).

Οι περιγραφές των entity container είναι πάντοτε τμήμα των αρχείων .window (δείτε παραπάνω). Ας δούμε ένα παράδειγμα μίας τέτοιας περιγραφής.

ENTITY_CONTAINER
{
 NAME = "MyEntity"
 TEMPLATE = "templates\MyTemplate.txt"

 ; θέση (σχετικά με τη θέση του παραθύρου)
X = 100 Y = 100 ; κατάσταση VISIBLE = TRUE DISABLED = FALSE ENTITY = "path\MyEntity.entity" }

Επεξήγηση:

Όπως μπορείτε να δείτε, η entity container λειτουργεί απλά ως "γέφυρα" μεταξύ του παραθύρου και του αντικειμένου entity.

Δείτε επίσης: τον οδηγό αναφοράς για το Αντικείμενο entity container


Εικόνες μοτίβα

Αν και μπορείτε να ορίσετε μία εικόνα ως φόντο για τα παράθυρα και τα αντικείμενα αυτών, έχει πάντα ένα προκαθορισμένο μέγεθος. Μερικές φορές όμως είναι χρήσιμο να ορίσετε μία ειδική εικόνα που να μπορεί να αυξομειώνει το μέγεθός της. Με αυτό τον τρόπο μπορείτε να χρησιμοποιήσετε το ίδιο φόντο για παράθυρα/αντικείμενα με διαφορετικό μέγεθος. Αυτές οι ειδικές εικόνες ονομάζονται "εικόνες μοτίβα".

Η εικόνα μοτίβο αποτελείται από μία γραφική εικόνα και ένα αρχείο προσδιορισμού που ορίζει τα επαναλαμβανόμενα τμήματα της εικόνας. Όταν η μηχανή χρειάζεται να αλλάξει το μέγεθος της εικόνας χρησιμοποιεί αυτά τα τμήματα επαναλαμβάνοντάς τα εώς ότου να φτάσει το επιθυμητό μέγεθος.

Για παράδειγμα, ο ακόλουθος προσδιορισμός χωρίζει την εικόνα σε 9 τμήματα με διαστάσεις 30x30 εικονοστοιχεία το καθένα.
TILED_IMAGE
{
 IMAGE="ui_elements\win.bmp"
 VERTICAL_TILES {30, 30, 30}
 HORIZONTAL_TILES {30, 30, 30}
}

Και αυτό είναι το αποτέλεσμα:

Είναι προφανές ότι αν χρησιμοποιήσετε μία εικόνα μοτίβο ως φόντο για τα παράθυρά σας το μέγεθος αυτών μπορεί να είναι μόνο πολλαπλάσιο των τμημάτων.