Προηγμένη ιαπωνική οθόνη με χρήση προσαρμοσμένων επεξεργαστών περιεχομένου
Πληροφορίες για την ιαπωνική οθόνη
Το σχέδιο κειμένου στο MonoGame χρησιμοποιεί spriteFont καθώς επίσης και XNA. Για το SpriteFont, ανατρέξτε στο θέμα Εμφάνιση αλφαριθμητικών χαρακτήρων και λεπτομερειών στυλ γραμματοσειράς, καθώς είναι το ίδιο με το XNA.
Εάν χρησιμοποιείτε το SpriteFont, πρέπει να καθορίσετε τους χαρακτήρες που θέλετε να χρησιμοποιήσετε εκ των προτέρων. Εάν είναι μόνο αλφαριθμητικά σύμβολα, μπορεί να γίνει με σχεδόν κανένα κόστος ως προδιαγραφή χαρακτήρα και να οικοδομήσουμε το χρόνο, επειδή είναι περίπου 100 χαρακτήρες, αλλά όταν πρόκειται για ιαπωνικά, γίνεται χιλιάδες χαρακτήρες, έτσι ώστε ο χρόνος κατασκευής γίνεται εξαιρετικά μεγάλος. Εάν καθορίσετε μόνο τους χαρακτήρες που θα χρησιμοποιηθούν, ο χρόνος δόμησης μπορεί να μειωθεί σε κάποιο βαθμό, αλλά είναι ενοχλητικό να καθορίσετε το χαρακτήρα που θα χρησιμοποιηθεί αντίστροφα και γίνεται ακόμα πιο ενοχλητικό εάν υπάρχει αλλαγή στο χαρακτήρα που θα χρησιμοποιηθεί.
Σε απάντηση σε αυτό το πρόβλημα, "Ninari GD"site έχει προσαρμοστεί για να κάνει σχέδιο ιαπωνικά σε XNA πιο ομαλά (από τον τρόπο, το site-run Yuichi Ito - MSFT είναι ένας από τους προγραμματιστές Πλαίσιο XNA). Αυτό διευκολύνει τον καθορισμό των χαρακτήρων που θα χρησιμοποιηθούν, τη μείωση του χρόνου δόμησης, την διακόσμηση χαρακτήρων και πολλά άλλα. Για περισσότερες πληροφορίες, ανατρέξτε στο σύνδεσμο.
Ωστόσο, ο "επεξεργαστής γραμματοσειρών WPF" που παρουσιάζεται στη σελίδα είναι για XNA και δεν μπορεί να χρησιμοποιηθεί όπως είναι στο MonoGame. Γι'αυτό θα ήθελα να το μεταφέρω στο MonoGame.
Λήψη του επεξεργαστή γραμματοσειρών WPF
Ανοίξτε τις ακόλουθες τοποθεσίες:
Κάντε κύλιση προς τα κάτω σε δύο συνδέσεις και κάντε κλικ στην παραπάνω σύνδεση για να κάνετε λήψη του έργου που περιέχει τον κωδικό ταξινόμησης. Το χαμηλότερο είναι μόνο ένα DLL, έτσι δεν χρειάζεται να το κατεβάσετε.
Κάντε μια εξαγωγή του ληφθέντος αρχείου, ώστε να μπορείτε να ανακτήσετε τα περιεχόμενα.
Δημιουργία έργου επεξεργαστή γραμματοσειρών WPF
Θα ήθελα να δημιουργήσετε ένα DLL επεξεργαστή γραμματοσειράς WPF που λειτουργεί με "Οποιαδήποτε CPU", αλλά για κάποιο λόγο, όταν μπορώ να δημιουργήσω ένα έργο με το "Content Pipeline Extension Library" του Πλαισίου XNA, μπορώ να το δημιουργήσετε μόνο σε x86, γι 'αυτό θα το δημιουργήσετε από μια κανονική βιβλιοθήκη τάξη εδώ.
Όταν δημιουργείτε ένα έργο, δεν χρειάζεστε "Class1.cs", επομένως διαγράψτε το.
Στη συνέχεια, προσθέστε μια αναφορά.
Επειδή σχεδιάζετε κείμενο στο WPF, χρειάζεστε μια αναφορά που σχετίζεται με το WPF. Πρώτα, ελέγξτε το "PresentationCore" από το "Framework".
Στη συνέχεια, ελέγξτε "WindowsBase". Τώρα πατήστε το κουμπί OK για να επιβεβαιώσετε και να ανοίξετε ξανά τη Διαχείριση αναφορών.
Επιλέξτε Αναζήτηση στα αριστερά και κάντε κλικ στο κουμπί Αναζήτηση παρακάτω.
Ανοίξτε την ακόλουθη διαδρομή φακέλου:
- C:\Αρχεία προγράμματος(x86)\MSBuild\MonoGame\v3.0\Εργαλεία\
Από εκεί, προσθέστε τα ακόλουθα δύο DLL:
- MonoGame.Framework.dll
- MonoGame.Framework.Content.Pipeline.dll
Βεβαιωθείτε ότι είναι επιλεγμένο και κάντε κλικ στο κουμπί OK.
Εξετάστε τις αναφορές που έχουν προστεθεί.
Προσθέστε τον πηγαίο κώδικα από το φάκελο "WpfFontPipeline" από το έργο που κατεβάσατε στο έργο που επεξεργάζεστε αυτήν τη στιγμή.
Η κατάσταση που πρόσθεσες.
Βεβαιωθείτε ότι η ρύθμιση παραμέτρων δόμησης είναι "Release" και "Any CPU".
Εκτελέστε μια δομή για να δείτε αν χτίστηκε με επιτυχία.
Δημιουργείται DLL.
Δημιουργία έργου παιχνιδιού
Δημιουργήστε ένα έργο για monogame. Δεν έχει σημασία τι πλατφόρμα είναι.
Τοποθετήστε το DLL που μόλις δημιουργήσατε στο φάκελο "Περιεχόμενο". Δεν έχει σημασία πού είναι το DLL, αλλά σε αυτή την περίπτωση θα χρειαστείτε μια σχετική ή απόλυτη διαδρομή, γι 'αυτό θα το αφήσει εδώ για τώρα.
Ανοίξτε το Content.mgcb και ανοίξτε τις Αναφορές με επιλεγμένο το περιεχόμενο.
Εάν κάνετε διπλό κλικ στο "Content.mmcb" για να μην το ανοίξετε, ξεκινήστε την "Διοχέτευση MonoGame" από το μενού "Έναρξη".
Στο πλαίσιο κειμένου, πληκτρολογήστε το όνομα αρχείου του DLL που μόλις δημιουργήσατε ή τη διαδρομή σε σχέση με ή την απόλυτη διαδρομή από το Content.mgcb.
Αφού το ρυθμίσετε, το DLL εξακολουθεί να μην αντανακλά, επομένως, αφού αποθηκεύσετε το έργο, κλείστε τη διοχέτευση monoGame και ανοίξτε το ξανά.
Δημιουργεί μια γραμματοσειρά sprite. Επιλέξτε "Επεξεργασία" "Προσθήκη→Νέο στοιχείο από το μενού.
Επιλέξτε "SpriteFont Περιγραφή" μεταξύ των στοιχείων για να το προσθέσετε. (Παρεμπιπτόντως, μετά την προσθήκη SpriteFont, άνοιξα το αρχείο SpriteFont για να είναι πιο εύκολο να δούμε κατά το χρόνο εκτέλεσης και άλλαξε το όνομα και το μέγεθος της γραμματοσειράς.)
Εάν επιλέξετε το SpriteFont που προσθέσατε, θα δείτε ότι ο επεξεργαστής γραμματοσειρών WPF είναι διαθέσιμος από τον επεξεργαστή.
Δεδομένου ότι κάθε παράμετρος μπορεί να οριστεί, αυτή τη φορά προσπάθησα να το ρυθμίσετε, όπως φαίνεται στο σχήμα προς το παρόν. Δυστυχώς, δεν μπορείτε να αλλάξετε το χρώμα στην τρέχουσα έκδοση του MonoGame Pipeline.
Προσπάθησε να χτίσεις. 6860 χαρακτήρες χτίστηκαν επειδή περιελάμβανε μέχρι το επίπεδο JIS 2. Ακόμα, ο χρόνος είναι περίπου εννέα δευτερόλεπτα, έτσι μπορείτε να δείτε ότι είναι αρκετά γρήγορο.
Τώρα, ζωγραφίζουμε χρησιμοποιώντας αυτό το SpriteFont, και ο κώδικας είναι ακριβώς ο ίδιος με το XNA. Μπορείτε να σχεδιάσετε κείμενο χρησιμοποιώντας τον κώδικα που εισάγεται στην "Εμφάνιση αλφαριθμητικών χαρακτήρων" ως έχει. Φυσικά, ιαπωνικά είναι επίσης δυνατή.
Θα ήθελα να βάλω μόνο τον κωδικό που πρόσθεσα μια φορά.
Το τμήμα ορισμού του πεδίου. Προστέθηκε το "SpriteFont".
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
SpriteFont font;
Φόρτωση και δημιουργία δεδομένων γραμματοσειράς στη μέθοδο LoadContent.
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
// TODO: use this.Content to load your game content here
// フォントデータの読み込み
font = Content.Load<SpriteFont>("Font");
}
Σχεδίαση με ιαπωνικά στη μέθοδο Draw.
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
spriteBatch.Begin();
spriteBatch.DrawString(font, "真・簡単(かもしれない)日本語表示",
new Vector2(50, 50), Color.White);
spriteBatch.DrawString(font, @"・OpenTypeフォント対応
・処理速度の高速化
・JIS漢字追加機能
・文字装飾",
new Vector2(50, 150), Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
Όταν εκτελείται, σχεδιάζεται το κείμενο. Είναι λίγο δύσκολο να το καταλάβεις, αλλά τα γράμματα έχουν σύνορα και μπλε διαβαθμίσεις μέσα.
Έγινε εύκολο να επιστήσω την ιαπωνική όπως αυτό, και κατέστη δυνατό να επιστήσει το χαρακτήρα με τη διακόσμηση.
Τέλος, δεν μπορείτε να αλλάξετε το χρώμα της διακόσμησης κειμένου στη διοχέτευση monoGame, αλλά μπορείτε να ανοίξετε το αρχείο απευθείας και να το τροποποιήσετε.
Αφού αποθηκεύσετε και κλείσετε το έργο, ανοίξτε το αρχείο .mccb ως αρχείο κειμένου.
Εάν μετακινηθείτε προς τα κάτω, υπάρχουν πληροφορίες χρώματος στην παράμετρο προορισμού, επομένως, επεξεργαστείτε τις απευθείας εκεί.
Μετά την αποθήκευση του κειμένου, ανοίξτε ξανά τη διοχέτευση monoGame και δημιουργήστε το. Μπορείτε να δείτε ότι το χρώμα έχει αλλάξει όταν το εκτελείτε.