Вращение групп изображений в AS3

Я работаю над двухмерной вертолетной игрой с видом сверху, которая представляет собой уникальную (по крайней мере для меня) задачу, и я надеюсь, что сообщество стека может предложить некоторые предложения. Мне нужно, чтобы вертолеты могли вращаться, а дверные пушки могли вращаться. Если я помещаю их в мувиклип, то это не проблема, и жизнь прекрасна, но я собираю это для iOS, и мувиклипы не воспроизводятся хорошо. Итак, мне нужно использовать растровые изображения. Каковы ваши предложения о том, как отслеживать «точки крепления» дверных орудий при вращении вертолета и переводить орудия в 2d, а также вращать их? Заранее спасибо за любые предложения (кроме "погуглить" - я делал это совсем немного)


person James V    schedule 03.04.2012    source источник
comment
Может быть, эти [ответы] помогут? [ответы]: stackoverflow.com/questions/9917950   -  person Matt    schedule 03.04.2012
comment
Ссылки на комментарии @Matt имеют формат [ текст ] ( ссылка ).   -  person Marty    schedule 04.04.2012


Ответы (2)


Ниже приведена ссылка на игру, которую я сделал несколько лет назад, она хитрая, но в начале есть весь исходный код.

http://www.ffiles.com/flash/games/helicopter_game_with_camera_follow_3159.html

также попробуйте это как вид автомобиля сверху, но колеса движутся отдельно:

http://ffiles.com/flash/games/flash_racing_game_3161.html

person joshua    schedule 03.04.2012
comment
Спасибо за введение, ребята! Мэтт, я могу без проблем вращать все по центральным точкам, я больше ищу предложения о том, как отслеживать точки крепления орудий при вращении вертолета, или есть ли какая-то концепция псевдо-мувиклипа, которую можно сделать с помощью растровых изображений. . Пареле, у меня твоя игра не загрузилась, попробую позже. Спасибо еще раз - person James V; 03.04.2012
comment
загрузка занимает полминуты, так как его 2-3 МБ, веб-сайт ограничивает соединение в то время, когда я не ставил экран загрузки, а также для изменения вращения перемещайте спрайт внутри родительского клипа, это позволяет упростить управление точкой преобразования - person joshua; 03.04.2012

просто используйте метод MovieClip, который работает!

У меня одновременно на сцене как минимум 200 ведущих, и у меня не было проблем с iPad (правда, iPhone может быть немного более ограниченным, но читайте дальше!). Пока вы используете экземпляры из библиотеки, а не делаете огромное количество разных иконок для одной и той же функциональности (например, все вертолеты должны быть из одного вертолета), все должно быть в порядке.

Основная хитрость заключается в том, чтобы найти и использовать функции Air по экономии памяти. Видеоклипы, например, должны использовать cacheAsBitmap и cacheAsBitmapMatrix. Есть несколько решений проблемы сложных MC, которые (по сути) копаются в MC и назначают cacheAsBitmap по мере необходимости - однако вам придется их поискать.

Еще одним важным инструментом является объединение объектов. Это может быть наиболее важной концепцией для реализации, если у вас есть огромное количество объектов (например, пуль).

Дело в том, что если у вас есть работающее решение, используйте его.

В общем, трюк, который я использую для сохранения определенной точки для размещения вещей в MC, состоит в том, чтобы добавить объект 1px X 1px, доступный из ActionScript, и назвать его attachPt. Затем я присваиваю x,y объекту Point с именем attachPoint в файле класса и использую его для размещения. Иногда мне приходилось использовать globalToLocal() и localToGlobal().

Добавление:

Больше советов:

Используйте матрицы для размещения и поворота. . . это конечно быстрее и более управляемо.

Не используйте какие-либо фильтры (размытие, свечение и т. д.). Вместо этого создайте PNG для имитации эффектов, если это абсолютно необходимо.

Используйте прозрачные пленки умеренно, особенно для подростков.

Сведите и объедините как можно больше слоев.

Опять же, объединение, объединение, объединение для видеоигр, даже с растровыми изображениями.

Наконец, вы всегда можете заменить MC на Bitmap в будущем. Поскольку разрабатывать с помощью MC намного проще, вы все равно можете создать игру, используя их, а затем поменять местами. Если вы знаете JSFL, вы можете написать скрипт, чтобы упростить эту задачу.

person iND    schedule 03.04.2012
comment
ИНД, спасибо! Я не тестировал производительность на iPad с помощью Movieclips. На моем iPhone 3G это создает абсолютную мусорную производительность (я стараюсь, чтобы все, что я создаю, работало прилично на моем старом телефоне, затем компилировал с помощью Air 2.6 или выше, что гарантирует хорошую работу на чем-то более новом) даже с cacheAsBitmap и cacheAsBitmapMatrix. Я проведу несколько тестов на iPad и посмотрю, насколько хорошо он работает. В противном случае на помощь придет старая добрая алгебра/геометрия/триггер. - person James V; 03.04.2012
comment
Хорошо, если вы настаиваете на поддержке дрянных старых технологий :). Я добавил пару пунктов к своему ответу, так что вы можете изучить их. - person iND; 04.04.2012