romamikAdobe что-то задумала насчет Flash под Linux

Вот в этом документе написано, что AIR под линукс больше не будет, а плеер будет только в виде плагина к chrome. Будет еще некий debug-плеер, но в каком он будет виде — неясно.

ИМХО, производители других браузеров что-то придумают. А немобильный AIR в целом мертворожденный…
  • +3
  • 22 февраля 2012, 15:48
  • romamik
  • 4

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

Немного поразбирался с новым 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.

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

( Читать дальше )

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

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

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

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



( Читать дальше )
  • +6
  • 08 декабря 2011, 22:00
  • romamik
  • 30

romamikНовый nape. Приложение сил к телам и raycast

Новый nape:
1. Новый nape. Hello world
2. Новый nape. Обработка событий
3. Новый nape. Testbed. И немного теории
4. Новый nape. Создание тел, материалы, фильтрация столкновений
5. Новый nape. Соединение тел
6. Новый nape. Приложение сил к телам и raycast (Его вы сейчас читаете)

Все примеры кода в Testbed: Скачать проект для FlashDevelop.

Приложение сил и импульсов к телам.

Как мы можем повлиять на тело в nape? Можно просто указать ему новое положение или скорость — но такое воздействие лежит за пределами физической симуляции, можно прицепить к нему constraint — это вполне в рамках физики, но не всегда подходит, есть еще один вариант, и его мы не рассматривали, — можно приложить к телу силу или импульс.

( Читать дальше )
  • +21
  • 11 ноября 2011, 00:46
  • romamik
  • 3

romamikНовый nape. Соединение тел.

Новый nape:
1. Новый nape. Hello world
2. Новый nape. Обработка событий
3. Новый nape. Testbed. И немного теории
4. Новый nape. Создание тел, материалы, фильтрация столкновений
5. Новый nape. Соединение тел (Его вы сейчас читаете)
6. Новый nape. Приложение сил к телам и raycast

Все примеры кода в Testbed: Скачать проект для FlashDevelop.

По сравнению, с той версией, что использовалась при написании первой части, были исправлены всякие ошибки в nape, в том числе касающиеся темы данной статьи, при написании примеров к этой статья я использовал версию m6.1 r61.

Соединения тел

Соединения тел в nape называются Constraint, более правильно это перевести как ограничение взаимного движения тел, но я буду все равно называть их соединениями. В nape есть следующие виды соединений:
  • PivotJoint — самое привычное соединение, два тела соединяются так, что две точки на них всегда совпадают
  • DistanceJoint — расстояние между двумя заданными точками двух тел поддерживается в заданных пределах
  • LineJoint — точка на одном теле движется по отрезку на другом теле
  • WeldJoint — два тела движутся полностью вместе, как если бы все их фигуры добавили к одному телу
  • AngleJoint — ограничивает угол поворота одного тела относительного другого в заданных пределах. Тела при этом могут разлететься как угодно далеко, так что обычно стоит использовать вместе с PivotJoint. Кроме того можно задавать соотношение углов поворота: это может пригодится, например, при создании чего-то вроде шестеренок.
  • MotorJoint — задает соотношение скоростей вращения двух тел. При определенных параметрах может использоваться как мотор. Также имеет смысл использовать вместе с PivotJoint.

Картинка для ясности

( Читать дальше )
  • +22
  • 30 октября 2011, 03:12
  • romamik
  • 7

romamikНовый nape. Создание тел, материалы, фильтрация столкновений.

Новый nape:
1. Новый nape. Hello world
2. Новый nape. Обработка событий
3. Новый nape. Testbed. И немного теории
4. Новый nape. Создание тел, материалы, фильтрация столкновений(Его вы сейчас читаете)
5. Новый nape. Соединение тел
6. Новый nape. Приложение сил к телам и raycast

Все примеры кода в Testbed: Скачать проект для FlashDevelop.

Немного про тела

Казалось бы уже рассматривали создание тел, тем не менее мне задают вопросы в личку, а значит мало рассматривали.

Тело (Body) в nape — это нечто, обладающее массой, моментом инерции, текущим положением и углом поворота, а также скоростями движения и вращения. Одно тело может состоять из нескольких фигур (Shape). У каждого тела есть своя собственная локальная система координат, которая движется и вращается вместе с телом, таким образом при движении тела в его собственной системе координат все фигуры остаются на месте. Для преобразования между системами координат у класса Body есть методы worldToLocal и localToWorld.

( Читать дальше )
  • +16
  • 24 октября 2011, 20:11
  • romamik
  • 7

romamikНовый nape. Testbed. И немного теории.

Новый nape:
1. Новый nape. Hello world
2. Новый nape. Обработка событий
3. Новый nape. Testbed. И немного теории. (Его вы сейчас читаете)
4. Новый nape. Создание тел, материалы, фильтрация столкновений
5. Новый nape. Соединение тел
6. Новый nape. Приложение сил к телам и raycast

Все примеры кода в Testbed: Скачать проект для FlashDevelop.

По хорошему этот пост должен был идти вторым, а не третьим. Когда я начал писать очередной пост про nape, я понял, что до сих пор изложение было довольно сумбурным и непоследовательным. Думаю, оно и дальше будет таким же, но все же предлагаю навести небольшой порядок, чтобы было легче двигаться дальше.

( Читать дальше )
  • +23
  • 24 октября 2011, 02:13
  • romamik
  • 11

romamikНовый nape. Обработка событий.

Новый nape:
1. Новый nape. Hello world
2. Новый nape. Обработка событий. (Его вы сейчас читаете)
3. Новый nape. Testbed. И немного теории
4. Новый nape. Создание тел, материалы, фильтрация столкновений
5. Новый nape. Соединение тел
6. Новый nape. Приложение сил к телам и raycast

В новом nape предусмотрена обработка самых разных событий:
1. Засыпание/просыпание тела;
2. Засыпание/просыпание соединения (ограничения взаимного движения, joint) тел;
3. Превышение допустимой нагрузки и разрыв соединения тел;
4. Начало/конец/продолжение контакта между телами.

На сегодняшний день впрочем не реализована большая часть этих возможностей.

( Читать дальше )
  • +18
  • 20 октября 2011, 14:32
  • romamik
  • 6

romamikНовый nape. Hello world.

Новый nape:
1. Новый nape. Hello world. (Его вы сейчас читаете)
2. Новый nape. Обработка событий
3. Новый nape. Testbed. И немного теории
4. Новый nape. Создание тел, материалы, фильтрация столкновений
5. Новый nape. Соединение тел
6. Новый nape. Приложение сил к телам и raycast

Все, наверное, слышали про физический 2d движок nape, как и про то, что уже некоторое время его автор делает новую версию, с другим API и внутри тоже другую. Я понемногу ковыряюсь в том, как этой новой версией пользоваться, и решил написать небольшое введение.

( Читать дальше )
  • +20
  • 20 октября 2011, 00:50
  • romamik
  • 10

romamikСезон охоты открыт

Играл в игру одного местного камрада и Конг мне в рекомендациях сбоку выдал мою собственную единственную и ненаглядную игрушку. C прикольными тегами.


Это не я такой тег добавил и раньше его не было (когда я последний раз смотрел полгода назад).
  • +2
  • 16 августа 2011, 21:33
  • romamik
  • 13