public MCDrawAlphanumericSprite CreateDrawAlphanumericSprite(MCBaseSprite spriteID)
        {
            MCDrawAlphanumericSprite spDef = new MCDrawAlphanumericSprite(App);
            string str;

            if (!m_spriteMgr.ContainsKey(spriteID))
            {
                str = "CreateDrawAlphanumericSprite()スプライト番号[" + spriteID + "]は存在しません。";
                throw new Exception(str);
            }
            if (spriteID.GetID() != MCAlphanumericSprite.SpriteID)
            {
                str = "スプライトハンドルが、固定英数字スプライトではありません。";
                throw new Exception(str);
            }
            var sp = (MCAlphanumericSprite)spriteID;

            //! 初期設定
            spDef.D2RenderType = (int)SPRITE_TYPE.ALPHANUMERIC;
            spDef.Technique    = m_defTechnicId;
            spDef.BlendState   = (int)BLENDSTATE.ALPHA;
            spDef.Sprite       = sp;
            spDef.Effect       = m_defDrawCommandId;

            m_drawSprites.Add(spDef, true);
            return(spDef);
        }
示例#2
0
        /// <summary>
        /// この関数は 1 フレームにつき 1 回呼び出されますが,OnFrameRender関数は、シーンを
        ///  レンダリングする必要があるときに、1 フレーム中に複数回呼び出すことができます。
        /// </summary>
        /// <param name="startUpTime">アプリケーションが開始してからの経過時間 (秒単位) です。</param>
        /// <param name="elapsedTime">最後のフレームからの経過時間 (秒単位) です。     </param>
        /// <param name="fps">最後のフレームからの経過時間 (秒単位) です。     </param>
        internal void OnFrameMove(double startUpTime, float elapsedTime, float fps)
        {
            IMCSpriteRender            iSprite;
            MCRenderAlphanumericSprite iASprite;

            App.SpriteMgr.GetSpriteRenderType(MCRenderAlphanumericSprite.RenderSpriteID, out iSprite);
            iASprite = (MCRenderAlphanumericSprite)iSprite;

            for (int i = 0; i < m_Texts.Count; ++i)
            {
                if (m_Texts[i].Text == "")
                {
                    continue;
                }

                var draw = new MCDrawAlphanumericSprite(App);
                draw.Effect       = DefaultEffectID;
                draw.D2RenderType = (int)SPRITE_TYPE.ALPHANUMERIC;
                draw.BlendState   = (int)BLENDSTATE.ALPHA;
                draw.Box          = new MCVector2(800, 600);
                draw.Text         = m_Texts[i].Text;
                draw.AlignFlags   = (int)MC_ANC.STR_ALL;
                draw.Sprite       = m_asciiSprite;
                draw.D2No         = (int)(MCDrawCommandPriority.D2NO_MAX - 1);
                draw.Build();

                iASprite.RegistrationDrawingCommand(
                    draw
                    );
                m_Texts[i].Text = "";
            }
        }