|
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Замена HitTestPoint
Здравствуйте. Я для тренировки делаю платформер. Для обработки столкновения с землей чаще всего используется HitTestPoint (HTO не сработает, платформы не представляют собой не один прямоугольник, а несколько). Проблема в том, что он вызывает у меня большое количество ошибок разного рода, но это не столь важно. Мне, честно говоря, влом работать с точками столкновения, в особенности проставлять их + уродовать макет сцены невидимой "землей" (объединение всех прямоугольников-платформ). Нет ли какого-нибудь другого способа обрабатывать столкновение с платформами, кроме разбиения фигуры на прямоугольники и последовательной обработки каждого?
__________________
В прошлом - AS3 программист, в данный момент пишу на Haxe |
|
|||||
[+1 09.05.15]
Регистрация: Jan 2015
Сообщений: 113
|
Не совсем понял... Но Вы о третьем параметре hitTestPoint знаете?
|
|
|||||
Рисуйте платформы в битмап-контейнер, и проверяйте свободность пикселов под героем при ходьбе/падении. Пока он стоит, проверять и не стоит даже(если конечно платформы не двигаются или не крутятся).
__________________
There is no thing in this world that is not simple. |
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Цитата:
Под контейнером вы подразумеваете просто общий для всей "земли" объект класса Bitmap, к которому можно применять методы BlendMode? Добавлено через 5 минут Посмотрел в доках, не совсем понял. По рамке персонажа проводится тестирование, если true, я так думаю? Если это так, то это сильно облегчит работу Последний раз редактировалось Wormhole; 22.03.2015 в 10:00. |
|
|||||
Цитата:
Подробнее про эти классы в доках да и в инете полно примеров. Так вот, получить ссылку на битмапдату можно такесли вы в FD, иначе если вы в Adobe Flash CSX, то у вас в библиотеке картинки хранятся уже в виде BitmapData, и их нужно передавать в конструктор битмапы, чтобы нарисовать) нарисовать объект в битмапдату можно методом draw. Он принимает объект и матрицу, кормите ему матрицу трансформации DO(someSprite.transform.matrix) Рисуем какой-т спрайт в битмапдату битмапы bmp Получить пиксели в конкретной точке битмапдаты можно с помощью методов getPixel/setPixel и getPixel32 и setPixel32. Добавлено через 9 минут BitmapData по сути - просто массив пикселей, с удобными методами.
__________________
There is no thing in this world that is not simple. |
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Спасибо за разъяснение!
Цитата:
Плюс если я собираюсь использовать BlendMode, мне надо что-то в соответствующий параметр писать? (вопрос не по теме, это уже касательно флешек а-ля worms) |
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Цитата:
|
|
|||||
Перемещать битмапу легко, просто bmp.x -= 2, bmp.y += 5;
Матрицу трансформации вы скармливаете ОБЪЕКТА, а не битмапдаты, чтобы объект рисовался не в начальных координатах, а в своих.
__________________
There is no thing in this world that is not simple. |
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Поясните, пожалуйста, что вы имеете в виду касательно размеров.
|
Часовой пояс GMT +4, время: 11:12. |
|
« Предыдущая тема | Следующая тема » |
|
|