Навигация
Категории
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

Урок 2. Как создать простой игровой цикл
Создание игрового цикла - каркаса для XNA приложений.

Итак в нашем проекте есть всего лишь один файл с кодом класса Program:

using System;
using System.Collections.Generic;
using System.Text;
 
namespace Tutorial1
{
class Program
{
static void Main(string[] args)
{
}
}
}

 

Шаг 2. Наследуйте уже имеющийся в вашем распоряжении класс Program от класса Game, определённого в пространстве имён Microsoft.Xna.Framework. Так как мы добавили ссылку на пространство имён Microsoft.Xna.Framework, то мы можем указать просто имя класса Game.
class Program : Game 
{
static void Main(string[] args)
{
}
}

 

Шаг 3. Объявите в классе Program поле graphics типа GraphicsDeviceManager который определён в пространстве имён Microsoft.Xna.Framework. С помощью этого объекта мы будем иметь возможность выводить графику на экран.
class Program : Game 
{
GraphicsDeviceManager graphics;
 
static void Main(string[] args)
{
}
}

 

Шаг 4. Создайте конструктор класса Program. Добавьте в него код создания экземпляра графического компонента GraphicsDeviceManager и добавления его в список компонентов класса Program:

class Program : Game 
{
GraphicsDeviceManager graphics;
 
public Program()
{
graphics = new GraphicsDeviceManager();
}
 
static void Main(string[] args)
{
}
}

 

Шаг 5. Переопределите в классе Program методы унаследованные от класса Game - Update() и Draw(). Эти методы вызываются при запуске приложения, при необходимости обновить состояние приложения, при необходимости отрисовать сцену и перед закрытием приложения соответственно.
class Program : Game 
{
GraphicsComponent graphics;
 
public Program()
{
graphics = new GraphicsDeviceManager();
}
 
protected override void Update(GameTime gameTime)
{
// обновить состояние объектов
}
 
protected override void Draw(GameTime gameTime)
{
// отрисовать сцену
}
 
 
static void Main(string[] args)
{
}
}

 

Шаг 6. Добавьте в метод отрисовки цены Draw() команды отчистки экрана и вывода сцены на экран:

 

protected override void Draw(GameTime gameTime) 
{
  // отчистка экрана в синий цвет
graphics.GraphicsDevice.Clear(Color.Blue);
 
base.Draw(gameTime);// вывод сцены
}
 

 

Шаг 7. Добавьте в статический метод Main код создания объёкта класса Program и запуска игрового цикла путём вызова метода Run(), который был унаследован классом Program от класса Game:

 

static void Main(string[] args)
{
using (Program game = new Program())
{
game.Run();
}
}


Итак, метод Main() - это точка входа в программу и именно с него начинается работа всей программы. Здесь мы создаём экземпляр нашего класса Program и вызовом метода Run() запускаем игровой цикл внутри класса Program.

В самом начале работы цикла вызывается метод LoadContent() - в нём мы можем сделать все необходимые приготовления, например, загрузить из файлов модели, текстуры и т.д.

Далее во время выполнения игрового цикла на каждом его шаге вызывются по очереди методы Update() и Draw(). В первом мы можем, например, обработать вводимые пользователем данные и(или) вычислять смещение у тех объектов которые должны двигаться. Во втором мы должны отрисовать сцену в экран.

Метод Draw() как правило всегда начинается с вызова методов отчистки экрана и заканчивается с выводом сцены на экран.

Перед закрытием приложения вызывается метод UnloadContent() - в нём мы можем освободить память от загруженных ранее ресурсов (моделей, текстур и т.д.)

Теперь при запуске приложения мы увидим пустое окно окрашенное в синий цвет.



Источник: http://www.xnadev.ru/articles.php?cat_id=2
Категория: XNA | Добавил: gforcer (31.01.2010) | Автор: Админ
Просмотров: 1762 | Комментарии: 1 | Теги: ++, программирование, xna, C#, c++ | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Друзья сайта
Демотиваторы
Copyright Зямаев Денис © 2024