2013-12-24 8 views
1

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

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

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

Я разрабатываю это приложение в Cocos2dx, но любая помощь в логике будет хорошей отправной точкой для начала.

Вот пример того, что я хочу.

Примечание: Я знаю, что могу достичь этого, взяв отдельные изображения, а затем обнаружив штрихи, но это увеличивает размер приложения на много МБ.

enter image description here

ответ

0

Я думаю, пользователь сможет сделать только на белой части изображения.
Если выше верно, то, что я хочу, чтобы вы сделали, в вашем приложении touchphonesMoved, проверьте, присутствует ли какой-либо черный (не белый) пиксель между предыдущей точкой касания и текущей точкой касания.
Если такого черного пикселя нет, тогда нарисуйте его еще и не нарисуйте.

+0

Да, я пробовал это, но когда вы вынимаете палец из «сердца» на изображении выше, он все равно будет заполнять цвет, поскольку он также не имеет черного пикселя. Таким образом, по существу t сводится к обнаружению того, попал в другую закрытую часть изображения. – Suny

+0

Я не понял, что вы сказали. Допустим, что у пользователя был палец в центре сердца. Так что, если он теперь движет пальцем к носу мультфильма, то при перемещении касания будет вызван метод Moved, и каждый раз, когда вы спрашиваете, будет ли «** -строчный сегмент ** соединение последней точки касания и текущей точки касания »имеет любые черные пиксели. Вряд ли такого не было бы, но когда он приближается к краю сердца и пересекает черную грань сердца, мы получим черный пиксель. Это указывает, что пользователь перемещение из сердца части изображения. Я лично думаю? – santhu

+0

Case1: случай, который вы сказали, является правильным, но, например, если пользователь чистит внутреннее изображение сердца и в случае ошибки коснется края контура сердца, в том, что по вашему коду, он прекратит раскраску прикосновенияМуждый и придется снова нажать внутри изображения сердца, чтобы продолжить заполнение цвета. – Suny

Смежные вопросы