Nape та Starling разом Це можливо, CODE STAGE

DEVELOPMENT & RESEARCH

Nape та Starling разом? Це можливо!

# пост оновлено (див. оновлено #3)

Деякі з вас вже напевно пробували використовувати найшвидший flash 2D фізичний двигунNape разом з GPU 2D фреймворкомStarling і помітили, що властивістьBody.graphic єflash .display.DisplayObject і не може бути прирівняно до екземпляраstarling.display.DisplayObject. У результаті, деякі просто використовували повільніший Box2D, деякі самостійно контролювали відмальовування фізичних тіл у вигляді DisplayObject'ів движка Starling, можливо, деякі навіть зробили те ж саме, що зробив я, але нікому не показали. Мені подобається властивість Body.graphic - вона дуже зручна і мені хотілося б допомогти всім as3 розробникам використовувати його на повну силу і для DisplayObject'ів Starling'а.

Представляю вашій увазі модифіковані swc двигуни Nape (release та debug) Milestone 7.2 «r3» для FP 10+, (можливо, не повністю) сумісні зі Starling.

Все, що я там змінив - замінив клас Body.graphicflash.display.DisplayObject наDynamic (* as3) і видалив конвертацію в градуси властивості Body.graphic.rotation. У моєму випадку цього було достатньо. Тепер я можу використовувати Nape як завжди, зі звичайними DisplayObject'ами, що дуже здорово! Так, там напевно є ще якісь несумісні речі зі Starling, але в моєму випадку Nape працює без помилок і проблем не виникає.

Качайте і використовуйте ці swc зі Starling на втіху!debug swcrelease swc

Мені сподобалося пригоди з компіляцією caxe та flib під Windows у MinGW, це було чудово! Щоб скомпілювати swc під Windows, треба: 1. Скопілюватиcaxe з вихідних джерел (лише один раз). 2. Скопіювати flib із вихідних джерел (лише один раз). 3. Використовувати препроцесор caxe на .cx вихідниках, щоб отримати haxe (.hx) вихідні коди (щоразу при компіляції swc). 4. Скомпілювати вихідні вихідні в swc файли (щоразу при компіляції swc).

Вихідні Nape'а оновлюються досить регулярно, тому тримати ці swc синхронізованими з вихідними джерелами я не буду, за бажання, Ви зможете самі все скомпілювати, до того ж можливо, підтримка сторонніх рендер-фреймворків буде реалізована офіційно!

ОБНОВЛЕНО:Щодо ручного контролю відрисоки DisplayObject'ів Starling'а, то це робиться дуже просто:

От і все! Цей підхід може бути повільнішим порівняно з позиціонуванням та обертанням графіки прямо в Body, т.к. в даному випадку вам доведеться пробігатися по всіх екземплярах Body і викликати якесь колдовство методів і гетерів кожен кадр. Однак, цей спосіб дозволяє використовувати останні офіційні Nape swc з будь-якими сторонніми рендер-фреймворками, такими як Starling, і це чудово!

ОБНОВЛЕНО #2Nape щойно оновився, і тепер з ним можна використовувати DisplayObject'и Staling'а ось так:

Lee Brimelow нещодавно зробив новий туторіал "Starling Physics Using Nape", де він демонструє цей підхід на прикладі проекту з м'ячами, що падають. Дякую, Lee!

ОБНОВЛЕНО #3Через знайдений баг у Flash Player Runtime (http://jpauclair.net/2012/02/25/epic-memory-track-down/ ), суворо рекомендується переписати код методу _updateGraphic таким чином:

Це убезпечить вас від того бага і не дозволить пам'яті у вашому додатку циклічно зростати та очищатися.