Это первый урок из серии уроков по XNA,
поэтому он самый простой, и я не думаю, что те, кто работал с MDX
(Managed DirectX) найдут здесь что-то необычное. Прошу меня не винить,
если вам что–то не нравиться в моем коде или статье, я средний
программист и просто у меня нашлось время разобраться в XNA и написать
пару статей.
Что предполагается разобрать и сделать на этом уроке:
- подключить сборки XNA Framework,
- создать пустое приложение с закрашиванием фона
- реализовать полноэкранный режим (fullscreen).
Первым делом создайте пустой проект.
Сейчас вы должны подключить сборки XNA Framework. Для этого нажмите
правой кнопкой мыши на References и нажмите Add References. Выберите
Microsoft.XNA.Framework и Microsoft.XNA.Framework.Game.
Добавьте файл класса и придумайте
ему, какое-нибудь название, например, "Simple.cs”. Пропишите в
директиву using объявления сборок как показано ниже:
1 2 3 4
|
using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics;
|
Теперь вы уже готовы чтобы работать
с XNA. Для реализации основного класса игры можете либо использовать
главный класс программы, где у вас точка входа, либо написать в другом
классе, например, class Game1. Мы напишем в нашем главном классе.
Унаследуйте ваш класс от Microsoft.Xna.Framework.Game.
1
|
class Program : Microsoft.Xna.Framework.Game
|
Это даст нам доступ к методам
рисования, обновления, инициализации приложения и т.п. Теперь пропишите
в точке входа main следующий код:
1 2 3 4 5 6 7
|
static void Main(string[] args) { using(Program game1 = new Program()) { game1.Run(); } }
|
Где "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
|
protected override void Update(GameTime gameTime) { //обновление различных параметров (напр. Использование физики) } protected override void 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;
|
В следуещем уроке вы узнаете как вводить спрайты и загружать текстуры.
Автор: Василенко Владислав
Источник: http://www.xnadev.ru/articles.php?article_id=5 |