![]() |
Замена HitTestPoint
Здравствуйте. Я для тренировки делаю платформер. Для обработки столкновения с землей чаще всего используется HitTestPoint (HTO не сработает, платформы не представляют собой не один прямоугольник, а несколько). Проблема в том, что он вызывает у меня большое количество ошибок разного рода, но это не столь важно. Мне, честно говоря, влом работать с точками столкновения, в особенности проставлять их + уродовать макет сцены невидимой "землей" (объединение всех прямоугольников-платформ). Нет ли какого-нибудь другого способа обрабатывать столкновение с платформами, кроме разбиения фигуры на прямоугольники и последовательной обработки каждого?
|
Не совсем понял... Но Вы о третьем параметре hitTestPoint знаете?
|
Рисуйте платформы в битмап-контейнер, и проверяйте свободность пикселов под героем при ходьбе/падении. Пока он стоит, проверять и не стоит даже(если конечно платформы не двигаются или не крутятся).
|
Цитата:
Под контейнером вы подразумеваете просто общий для всей "земли" объект класса Bitmap, к которому можно применять методы BlendMode? Добавлено через 5 минут Цитата:
|
Цитата:
Подробнее про эти классы в доках да и в инете полно примеров. Так вот, получить ссылку на битмапдату можно так:(если вы в FD, иначе если вы в Adobe Flash CSX, то у вас в библиотеке картинки хранятся уже в виде BitmapData, и их нужно передавать в конструктор битмапы, чтобы нарисовать) Код AS3:
Рисуем какой-т спрайт в битмапдату битмапы bmp Код AS3:
Добавлено через 9 минут BitmapData по сути - просто массив пикселей, с удобными методами. |
Спасибо за разъяснение!
Цитата:
Плюс если я собираюсь использовать BlendMode, мне надо что-то в соответствующий параметр писать? (вопрос не по теме, это уже касательно флешек а-ля worms) |
Вам нужно создавать экземпляр BitmapData вручную, с размерами вашей карты, и рисовать туда платформы.
|
Цитата:
|
Перемещать битмапу легко, просто bmp.x -= 2, bmp.y += 5;
Матрицу трансформации вы скармливаете ОБЪЕКТА, а не битмапдаты, чтобы объект рисовался не в начальных координатах, а в своих. |
Цитата:
|
| Часовой пояс GMT +4, время: 22:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.