gpt4 book ai didi

input - 如何为 monogame metro 应用程序创建输入文本框

转载 作者:行者123 更新时间:2023-12-05 05:26:55 27 4
gpt4 key购买 nike

基于这个线程:

Adding inputbox-like control to XNA game

不确定这是否是一个 ressurect,但我的 monogame 项目需要一个输入文本框,但是我

运行 Metro 应用程序版本,关于如何解决这个问题的任何线索?我一直在尝试构建

我自己的图形用户界面,但我不知道如何限制文本框图像末尾的文本范围

宽度,也不知道如何将当前文本索引移动到左边的较早点

箭头或更远的右箭头键盘键,任何人都可以帮助我解决这个问题吗?

在此先感谢您的帮助!亲切的问候,罗慕洛·罗梅罗

最佳答案

我假设您想要一个单行文本框 - 这比多行文本框容易得多,因为您不需要自动换行 - 并且您已经确定了键和字符输入。

我没有用过 monogame,但不久前我为 xna 制作了一个输入框,所以我希望这对你有所帮助。

您要做的是定义一个背景矩形(也可以是图像),并记住文本光标(也称为工字指针)的位置。这是光标所在文本的哪个字符之后,以及您将输入新输入字符的位置。所以现在在代码中,这里是您的文本框类中需要的变量(假设您将为此使用一个类,这将是最简单的):

string text = ""; //Start with no text
int cursorPos = 0;
//These are set in the constructor:
SpriteFont font;
Rectangle backRect;

现在您可以开始处理字符输入了。每当输入字符时,您都希望将其插入光标位置。但是您还想检查新文本是否不超过背面矩形的宽度,因此代码如下所示:

public void CharEntered(char c)
{
string newText = text.Insert(cursorPos, c.ToString()) //Insert the char

//Check if the text width is shorter than the back rectangle
if (font.MeasureString(newText).X < backRect.Width)
{
text = newText; //Set the text
cursorPos++; //Move the text cursor
}
}

您现在要做的就是处理键输入,并在按下左右箭头键时更改 cursorPos。并绘制文本等,但这些东西非常简单;)

希望这对您有所帮助!~卢卡

关于input - 如何为 monogame metro 应用程序创建输入文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305631/

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