+183.33
52 читателя, 99 топиков

Класс для генерации текстурных атласов

Переписываю сейчас свой движок для поддержки Stage3D. Появилась необходимость создавать текстурные атласы. Поискал утилиты в интеренете, либо платные и могут не всё, что надо, либо кривые и вообще не могут то, что надо.
Читать дальше →

MouseOver и MouseOut для линка в тексте. Часть1

Ну вот наконец-то и мой первый пост на блогах, я очень надеюсь что эта информация окажется полезной. Некоторой части AS3 кодеров возможно известно, что у текстового линка в htmlText совершенно невозможно подписаться на MouseOver и MouseOut, а иногда так хочется при наведении на некую часть текста например в хинте к игре показать что-нибудь этакое. Конечно можно вручную подкладывать невидимые кнопки и т.п., ну а если часть текста заскролена? Что же делать в таком случае? Вот мое решение:
Читать дальше →

Stage3d и Крутящийся Кубик

Немного поразбирался с новым 3d API из Flash Player 11 (то, что раньше называлось Molehill).

Все буду писать во FlashDevelop. Специально обновил версию до последней на текущий момент 4.0.0 RTM. Чего и всем желаю. В предыдущей версии, кроме выбора Flash Player 11 в опциях, надо было еще добавлять дополнительный параметр компилятора -swf-version=13. А в еще более предыдущих поддержки 11-ого флешплеера вообще не было.

Для компиляции примеров недостаточно SDK, нужна еще библиотека отсюда. Она маленькая, а нужен из нее всего один класс (AGAL mini assembler).

Документация на сайте Adobe по умолчанию не показывает классы Stage3D, Context3D и прочие, а заодно и их методы, пока не поменяешь фильтр с Flash Player 10.1 на Flash Player 11.1 (сверху окошка).

Сразу дам ссылку на отличную статью про написание шейдеров на AGAL: Пишем шейдер на AGAL.

Начать предлагаю с простого и короткого примера, который выведет на экран треугольник.
Читать дальше →

Пользовательский курсор

Казалось бы простая штука — кастомный курсор.
Есть у меня класс написанный по мотивам поста Олега Антипова в его блоге: www.anegmetex.com/devblog/2010/04/05/polzovatelskijj-graficheskijj-kursor/

Но сегодня столкнулся с интересным глюком. Оказывается событие MOUSE_LEAVE при нажатой клавише мыши срабатывает только после отпускания мышки за пределами флешки.

Вот флешка, в которой этот глюк проявляется, попробуйте нажать кнопку мыши и, удерживая ее, вывести курсор за пределы флешки:


Читать дальше →

AlternativaGUI - простой способ создать комплексный интерфейс

Библиотека для создания пользовательских интерфейсов AlternativaGUI вышла в свет. Загрузить ее можно с официального сайта компании AlternativaPlatform в разделе GUI. Библиотека распространяется бесплатно и может беспрепятственно использоваться в том числе в коммерческих проектах. Согласно лицензионному соглашению нужно лишь поставить в вашем проекте или его описании ссылку на сайт alternativaplatform.com.

AlternativaGUI обеспечивает большую гибкость в плане создания новых компонентов интерфейса или доработки существующих, что достигается за счет использования только базовых классов. В библиотеке представлен широкий набор элементов пользовательского интерфейса: кнопки, контейнеры, линейные контейнеры, скроллбар, утилиты для работы с растровой графикой и другие.
Читать дальше →

Проверка наличия звукового устройства приложением

Здравствуйте, джентльмены!

Сегодня, работая над проектом не за своей обычной машиной, а за подвернувшимся под руку Windows-сервером, я случайно узнал о любопытном но, к счастью, документированном нюансе класса Sound. Если в системе отсутствует звуковая карта, то после попытки воспроизведения звука метод play() возвращает null, что может стать причиной ошибки, генерируемой отлично работавшим на других машинах кодом.

Приведу пример:

var menuMusic: Sound = new MenuMusic; // так называется наш звук
var menuMusicSoundChannel: SoundChannel = new SoundChannel(); // здесь пока всё в порядке
menuMusicSoundChannel = menuMusic.play(); // строка выполняется, но после её выполнения menuMusicSoundChannel будет равно null
menuMusicSoundChannel.stop(); // и вот здесь флэшплеер выдаст ошибку об обращении к методу объекта, являющегося null'ом.

Указанный выше код отлично работает на машине со звуковой картой, но поведёт себя так, как написано в комментариях, на системе без неё.
Читать дальше →
  • +17

Неточности и погрешности при работе с Number. Чем это грозит и как решить?

Данная публикация является адаптированным переводом статьи о десятичных числах с моего блога.
Наверное, большинство камрадов сталкивались с непонятными «артефактами» и неточностями при работе с переменными типа Number. Попытайтесь умножить 0.1 на 3 и вы поймете, о чем идет речь. Хотя здравый смысл подсказывает, что результат должен быть 0.3, все же, как оказывается, алгоритмы AS3 не всегда поддаются логике и выдают что-то наподобие 0.30000000000000004.

round decimal numbers
Оказывается, такая погрешность возникает вследствие ограничения размера памяти, которую AS3 выделяет для хранения переменной Number. Если бы такого ограничения не существовало, банальная попытка сохранить значение числа «Пи» привела бы к полному истощению ресурсов.
Читать дальше →

Класс для динамической генерации космоса

Не так давно комрад romixx опубликовал пост, в котором описывал способ создания космоса с помощью Photoshop,FlashIDE и AC3. Все мы ленивы в той или иной степени и я подумал: а как можно сделать такой или почти такой космос только программным кодом?
Читать дальше →

Framework: GameConfig

Прочитал статью flashgameblogs.ru/blog/actionscript/751.html и решил показать свой конфиг.

Цель данного класса — вынести основные игровые переменные во внешний файл для удобного балансирования игры геймдизайнером и последующая интеграция финального конфига в игру.
Читать дальше →

Утилитный класс для чтения настроек

В процессе разработки игр не раз убеждался что крайне полезно хранить все более-менее значимые настройки в одном месте, а именно — файле настроек. Этот подход имеет как минимум следующие преимущества —

  • все параметры и настройки локализованы в одном месте, а не хаотично разбросаны по классам проекта
  • возможность вносить изменения в настройки и смотреть изменения без перекомпиляции проекта

Хочу поделиться с сообществом небольшим утилитным классом для быстрого и удобного чтения настроек из xml-файла. Он позволяет имея файл настроек следующего вида —
Читать дальше →