Реализация метода на текст в XNA - PullRequest
0 голосов
/ 31 декабря 2011

Итак, сегодня я начал возиться с XNA и все еще изучаю C #.Я пытаюсь создать главное меню для игры.

Я создал файл шрифта спрайта и создаю нужный текст.Код для этого:

    spriteBatch.DrawString(font, ">://Start Game [1]", new Vector2(0, 0), Color.LimeGreen);

Мой вопрос состоит в том, что у меня есть метод для создания эффекта печати с «компьютера» (о котором я задавал вопрос несколько дней назад), но это вC ++.У меня есть идея, как преобразовать его в C #, но даже если я правильно преобразовать код, как применить метод к создаваемому тексту?Являются ли они более эффективным способом печати текста в XNA?

Код для эффекта печати в C ++:

    void typeOutput(string displayString){

        for(int i = 0; i < displayString.length(); i++){

            cout << displayString[i];
            Sleep((rand() + 1)%typeSpeed);

        }
    }

1 Ответ

1 голос
/ 31 декабря 2011

Существуют различные способы сделать это, которые обсуждаются в этой теме .Один пример из этого потока:

// our string will take 3 seconds to appear 
private const float timerLength = 3f; 
private float timer = 0f; 

Затем в вашем методе Draw вы добавляете к таймеру и используете его, чтобы определить, какую часть строки нарисовать:

timer += (float)gameTime.ElapsedGameTime.TotalSeconds; 

// if the timer is passed timerLength, we just draw the whole string 
if (timer >= timerLength) 
{ 
   spriteBatch.DrawString(myFont, myString, stringPosition, stringColor); 
} 

// otherwise we want to just draw a substring 
else 
{ 
   // figure out how many characters to show based on 
   // the ratio of the timer to the timerLength 
   int numCharsToShow = (int)(myString.Length * (timer / timerLength)); 
   string strToDraw = myString.Substring(0, numCharsToShow);    

   // now just draw the substring instead 
   spriteBatch.DrawString(myFont, strToDraw, stringPosition, stringColor); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...