Перетащите / Проведите, чтобы прокрутить экран - PullRequest
0 голосов
/ 04 сентября 2010

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

Ответы [ 2 ]

3 голосов
/ 11 сентября 2010

Вы задали два вопроса здесь. Во-первых, как реагировать на прикосновения (например, прикосновения). Этот пост в блоге и связанный с ним пример являются хорошей отправной точкой .

Второй из которых - как иметь два экрана. Это тоже просто. Передайте матрицу перевода (Matrix.CreateTranslate) в SpriteBatch.Begin. Как вы хотите это сделать, зависит от вас. Если вы хотите, чтобы оба экрана имели (0,0) верхнюю левую часть экрана, дайте каждому из них матрицу перевода и переведите один вниз на высоту дисплея ниже другого. (Пока экран не виден, вы можете полностью его пропустить.)

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

0 голосов
/ 05 сентября 2010

Это зависит от того, хотите ли вы, чтобы пользователи могли видеть половину верхнего и половину нижнего экрана или только верх или низ.

Вы можете попробовать поместить содержимое на двух экранах в ScrollViewer и установить для ScrollViewer.VerticalScrollbarVisibility значение False; это позволило бы пользователям легко перетаскивать / пролистывать «экраны».

Что-то вроде:

<ScrollViewer VerticalScrollBarVisibility="Hidden">
    <my:FirstScreen/>
    <my:SecondtScreen/>
</ScrollViewer>

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

...