Стереть пиксели со спрайта Cocos2d-JS

У меня такое ощущение, что это невозможно, но все же стоит спросить, я думаю.

У меня есть фоновый спрайт и спрайт переднего плана, оба имеют тот же размер, что и окно/представление.

Когда спрайт игрока перемещается по экрану, я хочу удалить пиксели, которых он касается, чтобы открыть фоновый спрайт.

Это не только для целей отображения, я хочу, чтобы промежутки, которые игрок нарисовал или «выкопал» из слоя переднего плана, позволяли врагам проходить через них или в которые могли падать объекты. Таким образом, обнаружение попаданий будет необходимо для слоя переднего плана.

Это довольно сложно, и, возможно, Cocos2D-JS — не лучшая платформа для использования, если это невозможно, не могли бы вы порекомендовать другую, с которой было бы проще достичь этого эффекта?


person Varrick    schedule 23.04.2015    source источник


Ответы (1)


Я верю, что это возможно, но я не в состоянии дать вам правильный ответ.

Все, что я могу сказать, это то, что у вас, скорее всего, будет два варианта:

а. Создайте физическую многоугольную форму и деформируйте ее, а затем используйте ее в качестве «фильтра» для отображения изображения местности (вот пример проверки концепции на другом языке с использованием box2d).

b. Напрямую манипулировать пикселями и использовать маску для обнаружения столкновений (вот идеальное для пикселя обнаружение столкновений в cocos2d-js, к сожалению, у меня нет информации об изменении пикселей).

person Sebastián Vansteenkiste    schedule 24.04.2015