단어 줄 바꿈이 필요하지 않으므로 한 줄짜리 텍스트 상자를 원하는 것으로 가정합니다. 줄 바꿈이 필요하지 않으므로 여러 줄 입력보다 훨씬 쉽고 키와 문자를 입력해야합니다.
저는 모노 게임으로 일하지는 않았지만, 너무 오래 전에 xna 입력 상자를 만들었으므로 이것이 도움이되기를 바랍니다.
원하는 것은 배경 사각형 (이미지 일 수도 있음)을 정의하고 텍스트 커서 (I 빔 포인터라고도 함) 위치를 기억하는 것입니다. 커서 뒤에있는 문자의 문자와 새로 입력 한 문자의 입력 위치입니다. 이제 코드에서, 여기 당신의 텍스트 상자 클래스에해야하는 변수는 (당신이 가장 쉬운 것이다, 그것을 위해 클래스를 사용하는 가정) :
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가 변경됩니다. 그리고 텍스트 등을 그리기,하지만 그 물건은 꽤 간단합니다;)
희망이 도움이! ~ 루카