Alchemist` Δημοσ. 23 Ιανουαρίου 2011 Δημοσ. 23 Ιανουαρίου 2011 Χαίρεται φίλτατοι Insomniacs... Έχω ένα θέμα που πλέον έχει γίνει βασικό στην κατασκευή της TDS engine (περισσότερες πληροφορίες, χωρίς αυτές να απαιτούνται για να απαντήσετε στο θέμα, υπάρχουν στην υπογραφή μου), και δεν είναι άλλο από τα editable controls, τόσο για το πληκτρολόγιο, όσο και για ένα τηλεχειρηστήριο... Δεν έχω αρχίσει να γράφω κώδικα μέχρι στιγμής, αλλά πριν αρχίσω έχω φιλοσοφίσει αρκετές φορές το θέμα, και δεν ξέρω ποιός τρόπος υλοποίησης θα ήταν ο καλύτερος, από πλευράς λειτουργικότητας, και ευχρηστίας, ή αν υπάρχει κάτι άλλο που δεν έχω σκεφτεί... Όπως το έχω δεί μέχρι στιγμής, σίγουρα θα υπάρχει ένα εξωτερικά αρχείο, στο οποίο θα αποθηκεύονται ότι τιμές χρειαστούν για το ζήτημα... Από εκεί και πέρα, πως πρέπει να δράσω? Σκέφτηκα να κάνω ένα Map, όπου θα αριθμώ από το 1 μέχρι το 101 (αν θυμάμαι καλά) όλα τα κουμπιά του πληκτρολογίου, και από εκεί και πέρα θα τα αντιστοιχώ σε "ενέργειες" του παιχνιδιού μέσω κάποιου μενού, ίσως πάλι με κάποιον τρόπο θα μπορούσα να πάρω την ήδη υπάρχουσα αρίθμηση-κωδικοποίηση που έχουν τα πλήκτρα, αλλά δεν γνωρίζω το πως... Επίσης θα μπορούσα να αποθηκεύσω σε strings στο εξωτερικό αρχείο, αυτούσιο κομμάτι της εντολής που χρησιμοποιεί η γλώσσα προγραμματισμού που έχω (GML), για να ελέγχει αν "πατιέται" ένα πλήκτρο... Π.χ. για το κουμπί "A", ο έλεγχος γίνεται μέσω της εντολής keyboard_check_key(ord('A')) , οπότε αν π.χ. το αρχείο περιέχει τις εξής πληροφορίες: _______________________________ ord('A') vk_ctrl ord('W') ...... __________________________ και κάθε γραμμή κειμένου αντιστοιχεί σε μια προκαθορισμένη ενέργεια (π.χ. η πρώτη γραμμη στην κίνηση αριστερά) θα μπορώ να διαβάζω το κείμενο, και με την χρήση μια string μεταβλητής να κάνω το εξής: keyboard_check_key(string(player_move_left)) Από την άλλη θα μπορούσε να υπάρχει κάποιο μενού στυλ "Pro Evolution", όπου θα υπάρχει μια εικόνα του πληκτρολογίου, και πατώντας ο χρήστης σε κάποιο πλήκτρο της εικόνας να το αντιστοιχεί σε κάποια ενέργεια (οι οποίες θα εμφανίζονται ως bubbles γύρω)... Εσείς τι προτείνεται γενικώς? Έχετε κάνει ποτέ κάτι παρόμοιο? Χίλια ευχαριστώ προκαταβολικά!!! Συγνώμη αν σας μπέρδεψα με τα παραδείγματα! Υ.Γ. Δεν θέλω να μου απαντήσετε με κάποιον κώδικα... Απλά με περιγραφή του τρόπου αντιμετώπισης... Thanks και πάλι...
Directx Δημοσ. 24 Ιανουαρίου 2011 Δημοσ. 24 Ιανουαρίου 2011 Προσωπικά ορίζω τα πλήκτρα με σταθερό τρόπο για οικονομία χρόνου δίχως να προσφέρω ικανότητα customization των controls στον χρήστη παρόλο φυσικά που γράφω την μηχανή κατά τέτοιο τρόπο ώστε να είναι αγνωστική όσον αφορά την μέθοδο ή (πιο σωστά) την συσκευή επικοινωνία των controls. Όμως η σωστότερη και πιο επαγγελματική (αν θες) αντιμετώπιση κατά την γνώμη μου είναι να επιτρέπεις στον χρήστη τον καθορισμό των πλήκτρων για κάθε ενέργεια του παιχνιδιού, ειδικά όταν το πρόγραμμα χρησιμοποιεί πολλά πλήκτρα και συνεπώς η δέουσα διάταξη τους εξαρτάται ανά παίκτη. Όσον αφορά την υλοποίηση του ορισμού των πλήκτρων, αν κάποια στιγμή το εφαρμόσω σε κάποιο παιχνίδι θα προτιμήσω την μέθοδο του Mame. Δηλαδή ένα μενού - λίστα (όμορφα rendered στο game-area) με όλα τα actions διαθέσιμα και δίπλα σε κάθε ένα από αυτά το πλήκτρο που του αντιστοιχεί. Επιτρέποντας έτσι στον χρήστη την μετακίνηση του σε αυτό (με τα βελάκια για παράδειγμα) και τον εκ νέου ορισμό των πλήκτρων κάθε action με πάτημα του Enter και ύστερα εκ νέου πάτημα του επιθυμητού πλήκτρου είτε από το πληκτρολόγιο είτε από κάποια άλλη συσκευή (πχ. Gamepad). Με το ESC ο χρήστης θα μπορούσε να ακυρώνει την διαδικασία ανάθεσης επιστρέφοντας το action στο προγενέστερα ορισμένο πλήκτρο.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.