Навигация
Категории
C++,C#,C [19]
Уроки по средам разработки приложений с использованием C,C++,C#, а также .Net, DirectX, OpenGL и других
Delphi [14]
Уроки работы в среде программирования Delphi
Basic [13]
Уроки разработки приложений в среде Basic
DirectX [8]
Уроки по работе с DirectX, включая Direct3D и другие инструменты
Web [7]
Уроки по "Веб-программированию"
JavaScript [12]
Уроки по кодингу в Java и JavaScript
XNA [9]
Статьи и уроки программирование в среде XNA C++&C#
Профиль
Статистика
Rambler's Top100

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Locations of visitors to this page
Главная » Статьи » Программирование » XNA

Урок 1. Пишем первое приложение с XNA 3.0
Это первый урок из серии уроков по 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
Категория: XNA | Добавил: gforcer (31.01.2010) | Автор: Админ
Просмотров: 3576 | Теги: программа, первая, программирование, xna, C#, c++ | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Друзья сайта
Демотиваторы
Copyright Зямаев Денис © 2017