Фічі нової версії ігрового фреймворку Flixel 2.5

Фічі нової версії ігрового фреймворку Flixel 2.5

Не так давно вийшла нова версія Flixel, досить відомого і популярного фреймворку для створення ігор (останні зміни на github датуються 28 квітня). Тепер порядковий номер фреймворку досяг циферки 2.5. Дане оновлення включає в себе кілька, на мій погляд, цікавих фіч, які можуть ще більше спростити життя Flash-розробників. Якщо вам цікавий Flixel, то рекомендую ознайомитися з оригінальним описом, який містить ряд прикладів, що демонструють нові фічі, про які мова піде нижче.

Камери

Однією з нових фіч Flixel є поява гнучкого і потужного класу для управління камерами, який називається (РАПТОВО!) FlxCamera. За замовчуванням, новий проект створюється з однією камерою, розміри якої збігаються з розмірами вікна FlashPlayer. Доступ до цієї камери можна отримати через посилання FlxG.camera. Ви можете замінити цю камеру або додати додаткові камери для створення таких ефектів, як «split-screen», «картинка-в-картинці» або «міні-карта». Кожна камера є незалежним візуальним об'єктом, з власними налаштуваннями наближення, колірного відтінку, обертання та масштабування. Так само, кожен ігровий об'єкт підтримує свій список камер, тому ви можете досить просто налаштувати певні ігрові об'єкти для відображення в певних камерах. Розробники ігор у стилі «пригоди» так само можуть ознайомитися з вихідним кодом гри «Mode», щоб дізнатися більше способів для використання камер в іграх.

Пошук шляху

Поняття «пошуку шляху» означає пошук відповідей на питання «Як дійти з точки A в точку B?» або «Чи є можливість дійти з точки A в точку B?». У класі FlxTilemap з'явилася нова функція FlxTilemap.findPath (), яка повертає об'єкт FlxPath, який є списком «вузлів» (об'єктів FlxPoint). Думайте про цей список як просто про список координат X і Y в просторі, які починаються зі стартової позиції і закінчуються фінішною позицією. Коли ви знайдете валідний шлях, ви можете передати ці дані будь-якому FlxObject за допомогою функції FlxObject.followPath (). Ця функція «говорить» об'єктам, що потрібно почати слідувати заданому шляху. Ви можете налаштовувати швидкість, напрямок (зворотний, yoyo тощо), а також встановити можливість «прямування» шляху тільки горизонтально (зручно для об'єктів, що реагують на гравітацію). Ці налаштування дозволяють використовувати шляхи не тільки для організації AI персонажів, але так само і для організації «ліфтів», рухомих платформ і зацикленої фонової анімації.

Повторення

«Повтори» - нова і потужна фіча Flixel. «Повтори» - це список з інформацією про натиснуті кнопки клавіатури і дані про поведінку мишки, відповідно до часу. Оскільки Flixel більшою мірою розмежовує функціонал своїх компонентів, ми можемо використовувати інформацію «повторів» для перестворення ігрових сесій, які були записані кимось іншим. «Повтори» можуть бути використані для зневадження, створення «attract-mode» режимів, всередині-ігрових демо-режимів, а також створення роликів. Керування «повторами» може здійснюватися через «VCR» панель у шарі-зневадці, або безпосередньо через такі функції, як FlxG.loadReplay (), FlxG.recordReplay (), і FlxG.reloadReplay (). Розробники ігор у стилі «пригоди» так само можуть ознайомитися з вихідним кодом гри «Mode», щоб побачити приклади завантаження «повторів» з файлу, для створення «attract mode» режиму.

Групи і зіткнення

Ігрові об'єкти Flixel можуть бути збережені всередині FlxGroup об'єктів. Групи можуть бути використані для спрощення, автоматизації та організації оновлення, відмальовки, пошуку зіткнень, контролювання камер, розрахунку величини скролінгу і багато чого іншого. Якщо ви хочете уникнути виклику таких ресурсів, як FlxG.collide () більше декількох разів у кожному «ігровому циклі», ви можете використовувати вкладені групи, як спосіб спростити ці виклики. Наприклад, об'єкти у вашій грі розділені на 3 різні групи: Apples, Pears и Bananas. І ви так само хочете організувати функціонал «приземлення» об'єктів. Для реалізації цього функціоналу вам може здатися хорошим рішенням викликати функцію FlxG.collide () 3 рази: FlxG.collide(Apples, ground), FlxG.collide(Pears, ground), FlxG.collide(Bananas, ground). Більш кращим рішенням буде створення 4-ї групи, припустимо вона буде називатися Fruit, і додати в цю групу 3 групи об'єктів (Apples, Pears, Bananas), і після цього можна викликати функцію FlxG.collide (Fruit, ground). У цьому випадку ви збережете функціонал «приземлення» ігрових об'єктів, а так само отримаєте значний приріст продуктивності.

Tilemaps и Auto-Tiling

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

Частинки

Поняття «частинок» і «випромінювачів частинок» належать до окремих класів, які використовуються для створення спеціальних ефектів і поведінки. «Випромінювачі» є об'єктами, які створюють частинки і керують ними. FlxParticle - це просте розширення класу FlxSprite, а FlxEmitter - це просто розширення FlxGroup, тому системи частинок у Flixel не сильно відрізняються від інших звичайних груп спрайтів. Системи частинок просто додають функціонал для створення і «запуску» частинок, а частинки мають деякі властивості, для налаштування їх поведінки, щоб воно виглядало більш реалістично. Клас FlxEmitter так само володіє деякими властивостями для налаштування «розкиду» швидкостей, швидкості обертання, гравітації, поведінки при зіткненнях та ін.

Збереження гри

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

P.S.:

Спочатку дізнався про вихід Flixel з поста на flashgameblogs.ru.

Image