gpt4 book ai didi

c# - 在 XNA 中使用图像作为字体(SpriteFont?或其他?)

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:20 26 4
gpt4 key购买 nike

所以我已经进入了我正在处理的基于 2D XNA 的自上而下的 hack-and-slash 项目的一部分,我需要在屏幕上绘制文本。我想要使​​用的是我发现的 SpriteSheet 式图像,其中包含我将需要用于该项目的字符和符号。

现在,在提问之前我已经阅读了一些内容,将“字体”或其他东西放到屏幕上的唯一两种方法是使用计算机上已经安装的字体,或者根据 this , 我必须创建自定义内容处理器吗?

我的问题是,如果我有一张图片(比如 PNG 格式),上面有我想要的所有字母/字符,我该如何在我的 2D 游戏中使用这些字母?而且它不一定是基于 XNA 的解决方案。

提前致谢。

最佳答案

您绘制它的方式与从 sprite 表中绘制任何其他 sprite 的方式完全相同。

您可能已经知道 SpriteBatch.Draw方法有一些重载,可以采用 Rectangle 来表示 Sprite 表中的源。

您可以使用字典跟踪从字符到 sprite 矩形的关系

Dictionary<char, Rectangle> fontDict = new Dictionary<char,Rectangle>();
fontDict.Add('A', new Rectangle(/*params representing source of A*/);

你可以用 for 或 foreach 循环来表达你的意思

for(int i = 0; i<str.Count; i++)
{
Rectangle spriterect = fontDict[str[i]];

SpriteBach.Draw(/*params*/);
}

请记住,您还必须自己管理字母的间距,但您可以自己完成。

但确实如此 Look like the ContentManager supports creating SpriteFonts based off of image formats such as jpg and png ,所以我想说你可能最好探索一下


进一步谷歌搜索产生FontTextureProcessor Class ,这可能会有所帮助。

关于c# - 在 XNA 中使用图像作为字体(SpriteFont?或其他?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17890796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com