Βήμα 9: Διάφορες συμβουλές και διαδικασίες

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

 

Κατάσταση των σκηνών

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

Πρέπει να σημειωθεί ότι η παραπάνω διαδικασία βασίζεται στα ονόματα των αντικειμένων της σκηνής. Οπότε δεν πρέπει δύο αντικείμενα να έχουν το ίδιο όνομα γιατί θα υπάρχουν απρόβλεπτα αποτελέσματα.

 

Μεταφορά σε άλλη σκηνή

Το παιχνίδι πιθανόν δεν θα διαδραματίζεται σε ένα μόνο δωμάτιο. Γνωρίζουμε ήδη πως να δημιουργούμε νέες σκηνές αλλά πως τις συνδέουμε μεταξύ τους; Επειδή υπάρχουν πολλές περιπτώσεις κατά τις οποίες μπορεί να επιθυμούμε αλλαγή σκηνής η wme χρησιμοποιεί τα scripts για αυτή τη λειτουργία. Ας το δοκιμάσουμε. Στο Βήμα 7 αυτού του οδηγού έχουμε ήδη ορίσει την πόρτα ως διαδραστικό αντικείμενο. Επιλέξτε το πεδίο "door" από την λίστα και κάντε κλικ στο κουμπί "Scripts...". Επειδή δεν υπάρχει κάποιο script ορισμένο στην πόρτα θα εμφανιστεί ένα μενού για τη δημιουργία ενός νέου. Επιλέξτε το πρότυπο "scene object" και κάντε κλικ στο κουμπί "OΚ" για να δημιουργηθεί  ένα script με το όνομα "door.script". Αφού εμφανιστεί ο διάλογος των script επιλέξτε αυτό που μόλις φτιάξαμε και κάντε κλικ στο κουμπί "Edit script" (ή απλώς κάντε διπλό κλικ στο script).

To script θα ανοίξει στον κειμενογράφο που χρησιμοποιείτε. Θα βρείτε μέσα σε αυτό πολλούς χειριστές γεγονότων. Εμείς όμως, επειδή επιθυμούμε η πόρτα να αντιδρά μόνο στο αριστερό κλικ, θα τους σβήσουμε όλους. Μπορείτε αν θέλετε να αφήσετε μόνο τη συνάρτηση "GoToObject". Αργότερα αλλάξτε τις συντεταγμένες της ώστε ο χαρακτήρας σας να περπατάει προς την πόρτα (όπως μάθαμε στο Βήμα 7).

Αυτό που μένει είναι να προσθέσουμε τον χειρισμό για το αριστερό κλικ ώστε ο χαρακτήρας να περπατάει προς την πόρτα και μετά να αλλάζει η σκηνή. Προσθέστε αυτό τον κώδικα στο script:

on "LeftClick"
{
 GoToObject();
 Game.ChangeScene("scenes\menu\menu.scene");
}

Στην αρχή καλούμε τη συνάρτηση GoToObject που στέλνει τον χαρακτήρα στην πόρτα και μετά δίνουμε εντολή στη μηχανή να φορτώσει μία νέα σκηνή με το όνομα "scenes\menu\menu.scene". Ασφαλώς μπορείτε να χρησιμοποιήσετε οποιοδήποτε όνομα σκηνής που έχετε ήδη δημιουργήσει.

Δείτε το παιχνίδι επίδειξης της WME για ένα ολοκληρωμένο παράδειγμα.


Ρύθμιση του σημείου "Walk to" και της κατεύθυνσης

Στο προηγούμενο βήμα αυτού του οδηγού χρησιμοποιήσαμε τη συνάρτηση "GoToObject" για να στείλουμε τον χαρακτήρα σε ένα συγκεκριμένο αντικείμενο της σκηνής. Υπάρχει και πιο απλός τρόπος για να το επιτύχουμε αυτό. Μπορείτε να ορίσετε την ακριβή θέση του χαρακτήρα για κάθε αντικείμενο της σκηνής κατευθείας στον SceneEdit.

Ας δοκιμάσουμε στην πόρτα. Επιλέξτε τον κόμβο "door" από τον κατάλογο και ελέγξτε τις ρυθμίσεις αυτού:

Εδώ μπορείτε να συμπληρώσετε τις συντεταγμένες και την κατεύθυνση ή ακόμα καλύτερα να χρησιμοποιήσετε το εργαλείο actor placement (όπως περιγράφεται στο Βήμα 6). Τοποθετήστε τον χαρακτήρα στο σημείο που θέλετε και κάντε κλικ στο κουμπί "<" για να αντιγραφούν οι σωστές συντεταγμένες.

Μέσα στο script, το μόνο που χρειάζεται είναι να καλέσετε την μέθοδο actor.GoToObject  και ο χαρακτήρας θα περπατήσει προς τις συντεταγμένες που ορίσαμε. Για παράδειγμα το door.script που δημιουργήσαμε προηγουμένως θα είναι ίδιο με αυτό:

on "LeftClick"
{
 actor.GoToObject(this);
 Game.ChangeScene("scenes\menu\menu.scene");
}

Εφόσον το script αυτό ανήκει στο αντικείμενο πόρτα, η μεταβλητή "this" δείχνει την πόρτα. Με άλλα λόγια η πρώτη γραμμή δίνει εντολή στο χαρακτήρα να περπατήσει προς την πόρτα χρησιμοποιώντας τις συντεταγμένες που έχουμε ορίσει στον SceneEdit.