Создание интерфейса типа «перетаскивание» с выравниванием оснастки - PullRequest
2 голосов
/ 02 января 2012

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

На данный момент у меня есть кусочки головоломки в виде изображений, которые можно выбрать идвигался вокруг представления, чтобы расположить их.У меня есть векторные формы фигур за кулисами в виде ArrayLists of Points.

Но ... Я застрял в том, как соединить кусочки друг с другом.Т.е. когда кусок находится рядом с другим, сдвиньте один кусок так, чтобы соседние края перекрывали друг друга (т.е. по существу разделяли границу).

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

Может кто-нибудь указать мне на учебник (любой язык) / код / ​​или посоветовать, как его реализовать?

Ответы [ 3 ]

1 голос
/ 02 января 2012

Урс похож на игру Tangram.Я думаю, что это не может быть сделано с кусочками изображения, чтобы сформировать окончательную картину.Это можно сделать, создав геометрические фигуры (как для конечной фигуры, так и для фрагментов / фрагментов конечного изображения) с помощью пакета android.Graphics.Довольно просто определить окончательную форму по краям и вершинам кусочков / кусочков.

0 голосов
/ 02 января 2012

Как насчет рисования рамки вокруг каждой фигуры. После этого вы определяете середину. Затем вы можете сохранить значение для поворота для каждого куска. И вам нужно хранить соседей вместе с вектором их середины.

Тогда вам просто нужно вычислить, что вектор находится в разумном диапазоне, а угол поворота составляет + -X градусов. Например, если вектор находится в диапазоне + -10 пикселей, а вращение составляет + -3 °, вы можете повернуть кусок и вставить его в головоломку.

0 голосов
/ 02 января 2012

http://code.google.com/p/photogaffe/ стоит проверить. Это скользящая головоломка с открытым исходным кодом, состоящая из 15 частей и позволяющая пользователю выбрать изображение из своей галереи.

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

Надеюсь, это поможет.

...