Рисунок 3 – Добавление контента
Изначально файл Game1.cs содержит несколько стандартных и необходимых методов:
public Game1()
{
// Здесь указываются ориентация экрана, частота обновления,
// разрешение и сенсорные жесты, которые будут использованы в игре
}
protected override void LoadContent()
{
// Здесь загружается весь контент, необходимый в игре
}
protected override void Update(GameTime gameTime)
{
// Здесь располагается логика, выполняемая при обновлении экрана
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
// Здесь производится отрисовка графического контента
base.Draw(gameTime);
}
Вывод текста и графики в XNA
Для того чтобы вывести текст на экран, необходимо добавить в папку с контектом файл с названием *.spritefont, где * – название шрифта, этот файл содержит следующие строки:
<?xml version="1.0" encoding="utf-8"?>
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
<Asset Type= " Graphics: FontDescription»>
<FontName>Segoe UI</FontName>
<Size>15</Size>
<Spacing>0</Spacing>
<UseKerning>true</UseKerning>
<Style>Bold</Style>
<CharacterRegions>
<CharacterRegion>
<Start> </Start>
<End>~</End>
</CharacterRegion>
<CharacterRegion>
<Start>А</Start>
<End>я</End>
</CharacterRegion>
</CharacterRegions>
</Asset>
</XnaContent>
FontName – в этих тегах заключено имя шрифта, Microsoft не рекомендует использовать какие-либо специфические шрифты, одни из рекомендуемых – шрифты Segoe разных разновидностей.
Size – определяет размер шрифта.
Style – определяет стиль шрифта (Regular, Bold, Italic).
CharacterRegion – определяет символы, которые можно использовать, в данном случае это русские и английские буквы, цифры и некоторые специальные символы.
После добавления этого файла в проект, его необходимо объявить в коде:
SpriteFont Название_переменной; // Создаем переменную в начале класса Game1
В методе LoadContent() прописываем следующее:
Название_переменной = Content.Load<SpriteFont>("*"); //где * – название файла
В методе Draw(GameTime gameTime) выводим текст на экран:
spriteBatch.DrawString(Название_переменной, "Текст, который необходимо вывести", new Vector2(координата_x, координата_y), Color.Цвет);
Вывод изображения аналогичен выводу текста:
Texture2D Название_переменной; // Создаем переменную в начале класса Game1
В методе LoadContent() прописываем следующее:
название_переменной = Content.Load<Texture2D>("*"); // где * – название файла
В методе Draw(GameTime gameTime) рисуем текстуру:
spriteBatch.Draw(название_переменной, new Rectangle(координата_x, координата_y, ширина, высота), Color.White);
Обработка нажатий
Нажатия на экран
Современные мобильные телефоны в большинстве случаев оснащены большим сенсорным экраном и минимальным количеством аппаратных кнопок, поэтому и организация взаимодействия с играми построена на считывании жестов с экрана.
В методе Game1() прописываются жесты, что могут быть использованные в игре:
public