Je travaille sur un jeu (en utilisant Ruby) et envisage de le rendre disponible en plusieurs langues. Je me demandais quelle est la meilleure option pour le rendu du texte. En particulier, tout ce que j'utilise devrait être capable de rendre des polices complexes (arabe et persan en particulier). J'ai regardé autour de moi et je suis tombé sur le freetype, le graphite, et l'utilisation des fonctions natives de l'API de Windows (ça ne me gêne pas d'être multiplate-forme) pour n'en nommer que quelques-unes. Avec quoi devrais-je aller et quels sont les différents compromis?Quelle est la meilleure option pour rendre les polices complexes?
Répondre
Si vous cherchez un moyen de pixelliser les polices en bitmaps, Freetype et l'API Windows vont gérer cela bien.
Si vous cherchez un moyen de dessiner du texte à l'écran, utilisez les API natives de Windows si vous le pouvez; le texte et les accents bidirectionnels et tout ce genre de choses sont assez difficiles et chronophages pour bien fonctionner, alors vous voulez idéalement une API qui le gère pour vous. Que cela soit ou non viable pour votre jeu dépend des API graphiques que vous utilisez, que vous n'avez pas spécifiées. Pour pixelliser des chaînes entières de texte, vous devez utiliser le DrawText de win32, ce qui signifie que vous devez mettre la main sur slightly dirty.
Découvrez www.freetype.org Il gère les polices non-de-gauche à droite. Il génère les glyphes pour vous, mais vous devez les rendre à l'appareil (OpenGL/DirectX, etc).
Pour une solution multiplateforme, consultez Pango.
- 1. Quelle est la différence entre les polices TrueType et les polices Type-1?
- 2. Quel est un bon moyen de rendre les polices décrites?
- 3. Débutant à Lucene.net, meilleure approche pour les requêtes complexes?
- 4. Quelle est la meilleure option pour créer un éditeur d'interface utilisateur dans le navigateur?
- 5. Quelle est la meilleure option pour passer des données de SSIS à WCF?
- 6. Quelle est la meilleure façon de mélanger Option Strict de VB.NET et les nouvelles directives Option Infer?
- 7. Quelle est la meilleure option pour exécuter un Jabber/XMPP sur Windows 2003?
- 8. Quelle est la meilleure solution MemCache pour les applications ASP.NET?
- 9. Quelle est la meilleure bibliothèque pour manipuler les métadonnées JPEG?
- 10. Quelle est la meilleure pratique pour modifier les états d'affichage?
- 11. Quelle est la meilleure façon d'analyser de nombreux arguments de ligne de commande complexes en Java?
- 12. Quelle est la meilleure façon de créer des requêtes complexes RESTful?
- 13. Quelle est ma meilleure option pour l'espacement fixe conforme aux normes XHTML?
- 14. Quelle est la meilleure: DMG ou PackageMaker
- 15. Quelle est la meilleure ressource pour la programmation BlackBerry CLDC?
- 16. Quelle syntaxe est la meilleure pour la valeur de retour?
- 17. Quelle est la meilleure façon de cibler les applications WPF et Web?
- 18. Visual Studio 2008 (C# @ Verbatim) Polices et couleurs Option
- 19. Meilleure option d'authentification OpenLDAP?
- 20. Quelle est la meilleure pratique pour utiliser ASP.NET MVC pour rendre beaucoup de fichiers html ou texte?
- 21. Quelle est la meilleure approche d'automatisation des tests pour WatiN
- 22. Quelle est la meilleure façon de lire les données CSV?
- 23. Quelle est la meilleure façon de gérer les exceptions ObjectDataSource?
- 24. Quelle est la meilleure façon d'examiner les fichiers access.log d'apache?
- 25. Quelle est la meilleure bibliothèque pour gérer une wiimote?
- 26. Quelle est la meilleure méthode pour localiser une application asp.net?
- 27. Quelle est la meilleure référence pour l'architecture des applications Silverlight?
- 28. Quelle est la meilleure façon de tester les services WCF?
- 29. Schéma de données pour les entités complexes - quelle approche est plus simple
- 30. Quelle est la meilleure signature pour clone() en C++?
Y at-il une API qui rendrait simplement une chaîne dans la langue désirée à un bitmap (comme il serait rendu à l'écran) que je simplement blit à l'écran? J'utilise une API d'abstraction au-dessus de DirectX et je n'ai que des routines drawPixel et drawImage. –
Windows API le fait assez facilement –