Android - Паззл - PullRequest
       25

Android - Паззл

0 голосов
/ 12 февраля 2012

Я пытаюсь создать приложение-головоломку для Android. Я довольно глубоко разбираюсь в кодировании, и я застрял с одной проблемой.

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

У меня была пара идей:

  • Используйте отдельный файл растрового изображения, который содержит только черные и белые пиксели, и используйте его, чтобы разрезать изображение. Я думал, что это был довольно хороший план, пока я не стал его кодировать Я действительно понятия не имел, как это сделать.
  • Используйте объект Path для создания границы. Это, вероятно, сработает, за исключением того, что я не уверен, как отслеживать стороны, чтобы части соединялись друг с другом.

Есть идеи? Я открыт для любых предложений.

Ответы [ 3 ]

2 голосов
/ 12 февраля 2012

Вы можете использовать Path и / или Region, чтобы установить клип для Canvas при рисовании Bitmap.

Взгляните на в этом примере .Вот несколько способов обрезки вашего рисунка до любой формы.

0 голосов
/ 04 октября 2015

Это не явное решение, но мне интересно, можно ли было бы использовать кривые Безье или пути для создания линий вдоль x и y в сочетании с параметром (снабженным случайным значением) для управления величиной отклонения отпрямая линия и сколько на заданном расстоянии т.е.пикселей на дюйм - это было бы для создания языков на кусках.Затем используйте Region для извлечения результирующей фигуры на заданной стороне пересечения.Пусть объект формы получит свою центральную координату xy при создании экземпляра и сделает так, чтобы кусок не мог быть установлен, если его текущая координата не совпадает с той, которая была у него при создании.

0 голосов
/ 12 февраля 2012

Вы можете попробовать сделать квадраты или прямоугольники, расположенные внутри сложных фигур, которые все еще могут быть соединены вместе, когда есть совпадение, полный прямоугольник покрывает пространство. Представьте, что это 9 патч, когда две стороны совпадают, вы показываете прямоугольник границы.

...