GridView с изображениями против нарисованной на заказ игры Canvas for Android на память - PullRequest
0 голосов
/ 07 декабря 2010

Скажем, я хотел бы сделать игру на память / пары. В настоящее время я сделал черновик, который работает на холсте, и карты тянутся в сетку.

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

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

Мой вопрос: можно ли использовать View для каждой карты в игре (я мог бы иметь карты 5x6 или 4x5) и расположить их в GridView ? Есть ли подводные камни с этим подходом? Или мне следует продолжить с полностью нарисованного на заказ Canvas?

1 Ответ

1 голос
/ 07 декабря 2010

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

Это также делает реализацию пользовательского интерфейса намного проще, так как вы можете просто добавить onClickListeners к каждому представлению, чтобы захватывать прикосновения пользователя. Если вы рисуете все это вручную на холсте, вам придется интерпретировать прикосновения самостоятельно и решить, к какой карте прикоснулись и т. Д. Хотя это не слишком сложно, тогда я думаю, что подклассы View - лучшая модель и, скорее всего, результат в чистом коде.

Поскольку у вас будет только 30 карт, то я не могу представить, что у вас также есть проблемы с производительностью - если вы думали 100+, то, возможно, у вас будут проблемы, но я думаю, что вы в порядке. Кроме того, если я правильно понимаю вашу игру, большинство ваших карт не будут анимироваться большую часть времени, так что это еще одна причина, чтобы не волноваться - если у вас возникнут проблемы с производительностью анимации, вы можете легко избавиться от всех неанимированных Виды на растровое изображение (холст) на время анимации.

...