当前位置: 首页>>代码示例>>C#>>正文


C# SpriteBatch.RenderQuad方法代码示例

本文整理汇总了C#中SpriteBatch.RenderQuad方法的典型用法代码示例。如果您正苦于以下问题:C# SpriteBatch.RenderQuad方法的具体用法?C# SpriteBatch.RenderQuad怎么用?C# SpriteBatch.RenderQuad使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SpriteBatch的用法示例。


在下文中一共展示了SpriteBatch.RenderQuad方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DrawText

        public void DrawText(SpriteBatch sprite, Vector2 position, Vector4 color, string text, params object[] parameters)
        {
            if (parameters.Length > 0)
            {
                text = string.Format(text, parameters);
            }

            var startX = position.X;

            for (var i = 0; i < text.Length; i++)
            {
                var c = text[i];

                switch (c)
                {
                    case '\t':
                        position.X += Glyphs.First().Value.XAdvance * 4;
                        break;
                    case '\n':
                        position.X = startX;
                        position.Y += LineHeight;
                        break;
                    case '[':
                        if (text.Length < i + 2 || text[i + 1] != '#')
                            break;

                        i += 2;
                        var colorCode = "";

                        while (text[i] != ']' && text.Length > i + 1)
                        {
                            colorCode += text[i++];
                        }

                        if (Colors.ContainsKey(colorCode))
                        {
                            color = Colors[colorCode];
                        }
                        else
                        {
                            var bytes = Common.Utility.Hex.StringToByteArray(colorCode);

                            color = new Vector4(
                                (float)bytes[0] / 255.0f,
                                (float)bytes[1] / 255.0f,
                                (float)bytes[2] / 255.0f,
                                1
                                );
                        }

                        c = text[++i];

                        break;
                }

                if (!Glyphs.ContainsKey(c))
                    continue;

                var glyph = Glyphs[c];

                sprite.RenderQuad(Textures[glyph.Page], position + glyph.Offset, glyph.Size, glyph.UvPosition, glyph.UvSize, color);
                position.X += glyph.XAdvance;
            }
        }
开发者ID:johang88,项目名称:triton,代码行数:64,代码来源:BitmapFont.cs


注:本文中的SpriteBatch.RenderQuad方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。