/// <summary> /// 初始化 /// </summary> public void Intitial( FontMgr.FontLoadInfo fontLoadInfo ) { try { privateFontCollection = new PrivateFontCollection(); foreach (FontMgr.FontInfo info in fontLoadInfo.UnitCodeFontInfos) { privateFontCollection.AddFontFile( info.path ); } fontFamilys = privateFontCollection.Families; if (fontFamilys.Length != fontLoadInfo.UnitCodeFontInfos.Count) throw new Exception( "导入的各个字体必须属于不同类别" ); for (int i = 0; i < fontFamilys.Length; i++) { fonts.Add( fontLoadInfo.UnitCodeFontInfos[i].name, new System.Drawing.Font( fontFamilys[i], fontLoadInfo.DefualtEmSize ) ); } System.Drawing.Bitmap tempBitMap = new System.Drawing.Bitmap( 1, 1 ); mesureGraphics = System.Drawing.Graphics.FromImage( tempBitMap ); } catch (Exception) { throw new Exception( "读取字体文件出错" ); } }
/// <summary> /// /// </summary> /// <param name="device">图形设备</param> /// <param name="contentMgr">素材管理者</param> /// <param name="contentPath">引擎所需资源路径</param> public RenderEngine( GraphicsDevice device, ContentManager contentMgr, string contentPath ) { if (device == null) throw new NullReferenceException(); this.contentPath = contentPath; this.device = device; this.coordinMgr = new CoordinMgr(); this.spriteMgr = new SpriteMgr( this ); this.basicGraphics = new BasicGraphics( this ); this.fontMgr = new FontMgr( this, contentMgr ); Log.Initialize(); }