本文整理汇总了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;
}
}