这几天加强了字体系统, 功能和性能都已经比较完善了:
1.支持任意字体和大小.
2. 支持string和StringBuilder
3. 支持从字符串中的某个指定位置开始绘制.
4. 支持x,y方向上的非均匀缩放
5. 支持2D空间内的旋转.
6. 支持任意颜色
7. 添加了DrawStringInRegion(), 在指定区域内显示文字,支持自动换行, 裁剪超出显示区域的文字. 暂时还不支持缩放和旋转.
8. 低内存占用,大约5mb左右
最终的接口只包含2个类,Font和FontSystem。非常容易集成到其他系统:
FontSystem是一个singleton类, 只能通过CreateFontSystem获得. FontTexture负责内部把文字渲染到gid+ bitmap在复制到XNA texture2D的任务. 为了支持各种特性,DrawString有11种重载,DrawStringInRegion有9种:)
测试效果图: