/// <summary> /// 初期化 /// </summary> public override void Init() { base.Init(); charWidth = 1.0f; lineHeight = 1.0f; useFlgsANC = MC_ANC.STR_ALL; div.Init(); }
/// <summary> /// /// </summary> /// <param name="obj"></param> public void Set(MCAlphanumericSprite obj) { Set((MCBaseSprite)obj); charWidth = obj.charWidth; lineHeight = obj.lineHeight; useFlgsANC = obj.useFlgsANC; div = obj.div; }
public MCBaseSprite CreateAlphanumericSprite(string name, int w, int h, MC_ANC useFlgsANC) { string spriteName; //--------------------------------------------- //! テクスチャースの読み込み //--------------------------------------------- MCBaseTexture txISP; string str = ""; if (!App.ImageMgr.GetTexture(name, out txISP)) { txISP = MCTexture.CreateTextureFromFile( App, name, name ); if (txISP == null) { str = "スプライト作成で、テキストテクスチャ[" + name + "]からテクスチャ作成失敗しました。"; throw new Exception(str); } } MCTexture txSP = (MCTexture)txISP; str = "Alphanumericプライト作成で、2Dテクスチャでないテクスチャーを取得した。"; Trace.WriteLine(str); return(null); // { str = name + "_" + w + "_" + h + "_" + useFlgsANC; spriteName = str; } //--------------------------------------------- //! スプライト登録 //--------------------------------------------- MCBaseSprite spriteData; if (!App.SpriteMgr.GetSpriteData(spriteName, out spriteData)) { MCAlphanumericSprite sp; if ((sp = MCAlphanumericSprite.CreateSprite(App, spriteName, txISP, w, h, useFlgsANC)) == null) { throw new Exception("固定英数字プライト作成失敗[" + spriteName + "]。"); } spriteData = sp; } m_spriteMgr.Add(spriteData, true); return(spriteData); }
public static MCAlphanumericSprite CreateSprite( Application app, string spriteName, MCBaseTexture tx, int divW, int divH, MC_ANC useFlgsANC ) { MCAlphanumericSprite sp = new MCAlphanumericSprite(); // 登録済みのスプライトか? if (app.SpriteMgr.IsSprite(spriteName)) { return(sp); } sp.Texture00 = tx; // テクスチャーの情報を取得する var desc = sp.Texture00.GetDesc(); sp.Name = spriteName; sp.Width = desc.Width; sp.Height = desc.Height; sp.div.DivW_U = (float)divW / desc.Width; sp.div.DivH_V = (float)divH / desc.Height; // 行と列の数 sp.div.Col = desc.Width / divW; sp.div.Row = desc.Height / divH; // 球体を作る float fWW = divW * 0.5f; float fHH = divH * 0.5f; float r = (float)System.Math.Sqrt(fWW + fHH); var s = sp.Sphere; s.r = r; s.c = new MCVector3(r * 0.5f, -r * 0.5f, 0.0f); sp.Sphere = s; // 登録 if (app.SpriteMgr.RegisterSprite(spriteName, sp)) { return(sp); } return(sp); }