Ejemplo n.º 1
0
 /// <summary>
 /// 初期化
 /// </summary>
 public override void Init()
 {
     base.Init();
     charWidth  = 1.0f;
     lineHeight = 1.0f;
     useFlgsANC = MC_ANC.STR_ALL;
     div.Init();
 }
Ejemplo n.º 2
0
 /// <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);
        }
Ejemplo n.º 4
0
        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);
        }