Это первый урок из серии уроков по XNA, поэтому он самый простой, и я не думаю, что те, кто работал с MDX (Managed DirectX) найдут здесь что-то необычное. Прошу меня не винить, если вам что–то не нравиться в моем коде или статье, я средний программист и просто у меня нашлось время разобраться в XNA и написать пару статей.
Что предполагается разобрать и сделать на этом уроке:
подключить сборки XNA Framework,
создать пустое приложение с закрашиванием фона
реализовать полноэкранный режим (fullscreen).
Первым делом создайте пустой проект. Сейчас вы должны подключить сборки XNA Framework. Для этого нажмите правой кнопкой мыши на References и нажмите Add References. Выберите Microsoft.XNA.Framework и Microsoft.XNA.Framework.Game.
Добавьте файл класса и придумайте ему, какое-нибудь название, например, “Simple.cs”. Пропишите в директиву using объявления сборок как показано ниже:
Теперь вы уже готовы чтобы работать с XNA. Для реализации основного класса игры можете либо использовать главный класс программы, где у вас точка входа, либо написать в другом классе, например, class Game1. Мы напишем в нашем главном классе. Унаследуйте ваш класс от Microsoft.Xna.Framework.Game.
1
class Program : Microsoft.Xna.Framework.Game
Это даст нам доступ к методам рисования, обновления, инициализации приложения и т.п. Теперь пропишите в точке входа main следующий код:
Где “Program” это название вашего класса, вы можете использовать любое другое. Здесь мы просто запускаем наше приложение – игру (функция Run()), которую переопределять нет необходимости. Создайте в классе Program графический компонент, который мы будем использовать для вывода графики. Объявите переменную “graphics” как показано ниже и пропишите конструктор, где будет инициализироваться эта переменная.
1 2 3 4 5 6 7
//Объявляем графический компонент - который будет использоваться для вывода GraphicsDeviceManager graphics; public Program() { graphics =new GraphicsDeviceManager(this); }
Также на будущее можете переопределить функцию обновления и рисования (где мы зальем светло синим цветом экран).
1 2 3 4 5 6 7 8 9
protectedoverridevoid Update(GameTime gameTime) { //обновление различных параметров (напр. Использование физики) } protectedoverridevoid Draw(GameTime gameTime) { //рисование }
Теперь мы можем смело рисовать в окне. Для того чтобы закрасить экран напишите в функции Draw() этот код.
1 2 3 4 5 6 7 8 9
//Используем графический компонент для очистки в светло-синий цвет graphics.GraphicsDevice.Clear(Color.CornflowerBlue); graphics.GraphicsDevice.BeginScene(); //Здесь описывается сама сцена //Представляем все на экран base.Draw(gameTime);
Очистка экрана выполняется с помощью Clear которая имеет пять вариантов:
В первом который мы используем пристутствует один параметр который задает, каким цветом мы хотим очистить главную область. Есть также такие варианты:
1 2 3 4
void GraphicsDevice.Clear(ClearOptions options, Color color, float depth, int stencil); void GraphicsDevice.Clear(ClearOptions options, Vector4 color, float depth, int stencil); void GraphicsDevice.Clear(ClearOptions options, Color color, float depth, Rectangle[] regions); void GraphicsDevice.Clear(ClearOptions options, Vector4 color, float depth, Rectangle[] regions);
Второй и тертий(четверты и пятый) варианты отличатся лишь тем что по разному задается компонента цвета. В тертьем варианте задается с помощью четырех параметров (RGBA). Параметр regions позволяет задать какие определенные прямоуголные области будут подвергнуты очистке.
Если вы хотите сделать ваше приложение (игру) полноэкранным то добавьте в функцию инициализации графического компонента следующий код.
1 2 3 4 5 6 7 8 9 10
//настраиваем устройство this.graphics.BackBufferWidth=800;//Задаем ширину this.graphics.BackBufferHeight=600;//И высоту //перед тем как задавать формат пиксела рекомендуется удостовериться, что //этот форат поддерживает ваша видеокарта this.graphics.BackBufferFormat= SurfaceFormat.Bgr565;//Устанавливаем формат пиксела //Задаем режим fullscreen this.graphics.IsFullScreen= true;
В следуещем уроке вы узнаете как вводить спрайты и загружать текстуры.
1460 Прочтений • [Урок 1. Пишем первое приложение с XNA 3.0] [08.08.2012] [Комментариев: 0]