Βίντεο: Δημιουργήστε επιφάνεια σαν χρωματιστό μάρμαρο! Create surface like colored marble step by step! 2024
Ένα πρόβλημα με την σχεδίαση αντικειμένων στο GameMaker: Studio που μπορεί να συναντήσετε είναι ότι οι σκιές δεν τείνουν να είναι τετράγωνο με άκαμπτες γραμμές. Οι παρακάτω διαδικασίες σας δείχνουν πώς να δημιουργήσετε μια επιφάνεια για να σχεδιάσετε σκιές για τους τοίχους.
Για να δημιουργήσετε ένα νέο αντικείμενο για την επιφάνεια, ακολουθήστε τα εξής βήματα:
-
Με το μάθημα επιφανειών ανοιχτό, από το δέντρο πόρων, κάντε δεξί κλικ στα αντικείμενα και επιλέξτε Δημιουργία αντικειμένου.
Εμφανίζονται οι Ιδιότητες αντικειμένου.
-
Στο πεδίο Όνομα, πληκτρολογήστε obj_Shadow_Surface.
-
Στο πεδίο Βάθος, πληκτρολογήστε -900.
Αυτό το βάθος θα τραβήξει τη σκιά κάτω από τον τοίχο των περιπτώσεων έτσι ώστε να μην βλέπετε ποτέ το σκιασμένο αποτέλεσμα πάνω ή πάνω από τον ίδιο τον τοίχο.
-
Επιλέξτε Προσθήκη συμβάντος → Δημιουργία.
Το Δημιουργία συμβάντος εμφανίζεται στην ενότητα Συμβάντα.
-
Μεταφέρετε και αποθέστε μια ενέργεια Εκτέλεση κώδικα από την καρτέλα Control στην ενότητα Actions.
Εμφανίζεται ένα παράθυρο κώδικα.
-
Στο παράθυρο κώδικα πληκτρολογήστε τα εξής:
surf = -1;
Αυτός ο κώδικας δημιουργεί μια μεταβλητή για την επιφάνεια αλλά δεν δημιουργεί την ίδια την επιφάνεια.
-
Κάντε κλικ στο πράσινο σημάδι επιλογής.
Το παράθυρο κώδικα αποθηκεύεται και κλείνεται.
Θα δημιουργήσετε το εφέ Surface στο Draw Event, το οποίο ενεργοποιείται σε κάθε βήμα του παιχνιδιού.
Πρώτον, η παρακάτω διαδικασία δείχνει πώς να αφαιρέσετε το εφέ Surface όταν δεν το χρειάζεστε πλέον.
-
Από τις ιδιότητες αντικειμένου obj_Shadow_Surface, επιλέξτε Προσθήκη συμβάντος → Άλλο → Τέλος δωματίου.
Το Event End Room εμφανίζεται στην ενότητα Συμβάντα.
-
Μεταφέρετε και αποθέστε μια ενέργεια Εκτέλεση κώδικα από την καρτέλα Control στην ενότητα Actions.
Εμφανίζεται ένα παράθυρο κώδικα.
-
Στο παράθυρο κώδικα, πληκτρολογήστε τα εξής:
αν υπάρχει surface_exists (surf) {surface_free (surf)}}
-
Κάντε κλικ στο πράσινο σημάδι επιλογής.
Το παράθυρο κώδικα αποθηκεύεται και κλείνεται.
Αυτός ο κώδικας απελευθερώνει τη μνήμη που χρησιμοποιούσε η επιφάνεια.
Εάν η μνήμη δεν απελευθερωθεί όταν η επιφάνεια δεν είναι πλέον απαραίτητη, το παιχνίδι μπορεί να αναπτύξει διαρροή μνήμης, η οποία τελικά θα συντρίψει το παιχνίδι σας.