В игре прокрутка и масштабирование - PullRequest
0 голосов
/ 24 июля 2011

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

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

Мне нужна помощь, как это сделать. Я знаю, как определить, что пользователь прокрутил или дважды нажал, но я не знаю, что мне нужно сделать, чтобы увеличить или уменьшить масштаб и прокрутить (если прокрутка обнаружена).

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

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

Любая помощь будет высоко ценится. Спасибо

1 Ответ

0 голосов
/ 24 июля 2011

Масштабирование должно быть простым, если вы обнаружили, где находитесь в данный момент (например, уровень масштабирования)

image.setBounds((getWidth()/2)-zoomControler, (getHeight()/2)-zoomControler, (getWidth()/2)+zoomControler, (getHeight()/2)+zoomControler);

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

...