拖动/滑动以滚动屏幕

时间:2010-09-04 07:36:20

标签: xna windows-phone-7 xna-4.0

拥有垂直滚动屏幕的最佳方式是什么?我的游戏将消耗两个屏幕高,用户应该能够通过简单的拖动或滑动动作在两个屏幕之间移动。背景不是平铺的,精灵将被放置在它上面。这种屏幕管理的最佳方式是什么?

2 个答案:

答案 0 :(得分:3)

你在这里问过两个问题。其中的第一步是如何响应触摸手势(如滑动)。 This blog post and associated sample is a good starting point

第二个是如何拥有两个屏幕。这也很简单。将翻译矩阵(Matrix.CreateTranslate)传递到SpriteBatch.Begin。您希望如何做到这一点取决于您。如果您希望两个屏幕都有(0,0)位于屏幕的左上角,请为每个屏幕分配一个平移矩阵,然后将显示屏的高度向下翻译为另一个。 (当屏幕不在视野范围内时,您可以完全跳过它。)

当用户滑动时,只需为翻译设置动画,使一个屏幕移出视野,另一个移动到视图中。

答案 1 :(得分:0)

这取决于您是希望用户能够看到底部屏幕的一半还是一半,或者只能看到顶部或底部。

您可以尝试将两个屏幕内容放入ScrollViewer,并将ScrollViewer.VerticalScrollbarVisibility设置为False;这将允许用户在“屏幕”之间轻松拖动/滑动。

类似的东西:

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

要考虑的一件事是,您是想要处理用户更改手机方向,还是将手机锁定为纵向/水平方向。我还相信具有不同分辨率的手机最终将会发布,Windows Marketplace中的任何应用程序都需要能够处理全分辨率和半分辨率。