Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
розділ 3(рамки, нумерація).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
366.13 Кб
Скачать

Розділ 3 процес візуалізації течії на архітектурі microsoft xna

3.1. Архітектура та компоненти xna

XNA – платформа для розробки, яка включає в себе платформу для програмування та набір інструментів для розробки будь-яких ігор. На основі платформи .NET, XNA надає можливість розробки ігор для персональних комп’ютерів, для Xbox, а також для медіа-плеєра Zune, використовуючи мову програмування C#.

XNA дозволяє робити багато речей. Так само, як користувачі персональних комп’ютерів мають вільний доступ до пристроїв введення (клавіатури, миша), XNA надає легкий доступ до графічного обладнання. Є можливість легко управляти аудіо через XNA, зберігати інформацію про найвищі, набрані в грі, бали і, навіть, зберігати різні ігри.

XNA дотримується більшості сучасних стандартів .NET, що робить її абсолютно новим кроком в області розробки ігор. На рис. 3.1 показана розгортка платформи на компоненти. XNA Game Studio – середовище розробки; програма інтегрується в будь-яку версію програми Visual Studio, надаючи набір початкових правил, шаблони проектів і можливість підтримку редактора для компонентів високого рівня, таких як Content Pipeline (конвеєр контенту) та Application Model (модель додатку). XNA Framework це програмоване API. Модульне та об'єктно-орієнтоване API дозволяє розробникам програмувати ігри з використанням сучасної, керованої мови програмування та функціональними класами бібліотек .NET Framework.

Рис. 3.1 Розгортка платформи на компоненти

XNA Framework можна розбити на декілька рівнів (рис. 3.2). Перший рівень – ігри. Цей рівень забезпечується суспільними ресурсами, які надаються компанією Microsoft та спільнотою розробників. В якості ресурсів виступають стартові комплекти, код, зміст та компоненти. Другий рівень – це розширена структура (Extended Framework) додатку, яка складається з двох основних компонентів, які є головними в сфері розробки ігор. Цими компонентами є модель додатка та збірка контенту. Третім компонентом є структура ядра (Core Framework), яка включає в себе інтерфейс програмування для загальних завдань при розробці ігор, розбиваючи його на категорії графіки, аудіо, вхідних даних, математики та сховища. Останнім компонентом представлена платформа, яка забезпечує графічну функціональність (Direct3D), функціональність для аудіо (XACT) та функціональність для вхідних даних (XInput).

Рис. 3.2 Структурні рівні XNA

Модель додатку. Модель додатку (Application Model) це структура рівня додатків, яка надає функціональні можливості для досягнення спільних завдань розвитку гри. Ядром моделі додатків є клас Game, який надає базовий клас для моделювання процесу гри. Коли новий проект створюється в середовищі розробки XNA Game Studio, то він одразу забезпечується кодом, який містить клас, похідний від класу XNA Game. В цьому класі є чотири віртуальні методи, які складають цикл моделювання гри або ігровий цикл (рис. 3.3). Цикл гри керується за допомогою XNA Framework, який викликає ці методи у відповідний час.

Перший метод – Initialize, який викликається перед тим, як ігровий цикл починає ініціалізацію ресурсів.

Другий метод – LoadContent, який відповідальний за завантаження контенту гри, такого як текстури, аудіо, 3D моделі, шрифти і т.д., і викликається після першого методу, але до початку циклу гри.

Третій метод – Update, що оновлює логіку гри та стан об'єктів в грі.

Останній, четвертий метод – Draw, який малює та забезпечує графіку.

Рис. 3.3 Ігровий цикл

Конвеєр контенту. Конвеєр контенту (Content Pipeline) - це інструмент у формі .Net бібліотек та класів. Цей інструмент в першу чергу інтегрується в середовище розробки Visual Studio, але крім цього представлений і класами на стороні бібліотеки часу виконання XNA runtime. XNA Content Pipeline - це загальна назва для класів, які інтегруються в середовище розробки, та класів, які використовуються в кінцевій програмі для завантаження контенту (рис.3.4).

Рис. 3.4 Схема роботи конвеєру контенту

Основною ідеєю є те, що, у першу чергу, частина роботи перенесена на час компіляції. На відміну від варіанту з єдиним методом LoadTexture, який всі дії виконує під час роботи програми, з конвеєром контенту частина роботи виконується в середовищі розробки під час компіляції. Конкретніше, на етапі компіляції дані імпортуються з початкового формату, крім того, для кожного типу даних (незалежно від початкового файлового формату) виконується попередня обробка. Під час виконання, додатку не доводиться працювати з різними форматами і виконувати всі ці дії, тому що результатом роботи Content Pipeline на етапі компіляції є файли внутрішнього формату (XNB), які є бінарно серіалізованими класами додатку, що зводить витрати часу при завантаженні до мінімуму.

Виходячи з цього, маємо можливість відокремити решту логіки програми від того, в якому форматі контент був наданий спочатку. Тільки перша частина конвеєра знає про файлові формати. І після того, як на першій стадії дані розпакуються з файлу, вони будуть в єдиному вигляді, який залежить від типу самих даних, а не від початкового формату.

Всю систему Content Pipeline (рис. 3.5) можна розділити на дві частини: перша та, що інтегрується в студію і виконує роботу під час компіляції XNA проекту, та друга частина (Content Manager), яка працює під час виконання XNA додатку (класи та методи, які використовуються в коді програми).

Рис. 3.5 Складові системи конвеєру контенту

Компонент для роботи з графікою. Графічна частина бібліотеки основана на принципі роботи бібліотеки DirectX. Підхід в реалізації програм за допомогою графічного конвеєра XNA повністю виключає роботу з програмованим конвеєром, який використовується майже в усіх програмах, що взаємодіють з DirectX. В XNA використовується тільки програмований конвеєр і шейдери. Всі дії зі світом, матеріалом, матрицями, текстурами та ін. необхідно виконувати тільки через шейдери.

Компонент для роботи з математикою. Цей компонент представлений у вигляді бібліотеки для роботи з математичними операціями, містить велику кількість класів, структур та методів для роботи з векторними даними, матрицями, операціями по трансформації, переносу, перетворенню і т.д. В якості основної системи координат застосовується правостороння система координат.

Компонент для роботи з вхідними даними. Бібліотека для роботи з вхідними даними містить набір інструментів для роботи з пристроями вводу інформації. До пристроїв вводу інформації традиційно відносяться клавіатура, миша, джойстик. Вони всюди використовуються в комп’ютерних системах та в іграх. Наприклад, в консольній приставці Xbox360 можна працювати лише с джойстиком та клавіатурою, при чому джойстик являється головним пристроєм вводу даних.

Компонент для роботи з аудіо. Робота із звуком в XNA побудована на базі Microsoft Cross-Platform Audio Creation Tool (XACT). За допомогою цієї утиліти або, навіть, окремої програми, створюються спеціалізовані звукові проекти, які потім за допомогою компонента Audio завантажують всі звукові дані в гру. Такий підхід був створений спеціально для того, щоб мати можливість працювати із звуковими даними, не прив’язуючись до платформи.

Компонент для роботи із сховищем даних. Цей компонент організує роботу з файловою системою пристрою. Тут доступний набір стандартних операцій для запису та зчитування даних, видаленню, перезапису і т.д. Це стандартний набір для будь-якого пристрою файлової системи організації збереження даних, які можуть бути потрібними в іграх, наприклад, для збереження гри або її послідуючого завантаження.

Отже, архітектура XNA складається з трьох основних модулів: модуль графіки, сервісний модуль та модуль завантаження контенту. Модуль графіки відповідальний за відображення ігрових елементів. Тобто, він відповідає за відображення на екрані та за малювання видимих елементів. Він складається з екранів, компонентів інтерфейсу користувача (наприклад, кнопки, текстові поля і т.д.) та представлень моделювання. Також він містить специфічні візуалізації моделювання світу гри.

Сервісний модуль несе відповідальність за забезпечення гри ресурсами, допомагаючи у її імплементації. Компоненти сервісного модуля називаються менеджерами. Менеджери – чітко визначені та майже незалежні модулі. Таким чином, ці менеджери реагують на специфічні запити екранів у грі та на їх компоненти. До прикладів менеджерів можна віднести: менеджер аудіо, менеджер введення та менеджер моделювання, який моделює правила гри та штучний інтелект.

Модуль завантаження контенту відповідає за завантаження ресурсів, які будуть використовуватися в грі. Він відповідає за файли завантаження зображень, звукові файли та XML-файли для конфігурацій гри. Контент модуля завантаження складається з чітко визначених відповідальних елементів. Таким чином, один елемент може завантажувати анімації персонажа, а інший відповідати за завантаження карти, яка визначає позиції персонажа у світі гри.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]