2010-09-04 225 views
0

垂直滾動屏幕的最佳方式是什麼?我的遊戲將消耗兩個屏幕高度,用戶應該能夠通過簡單的拖動或滑動動作在兩個屏幕之間移動。背景不平鋪,精靈將被放置在它上面。這種屏幕管理的最佳方式是什麼?拖動/滑動滾動屏幕

回答

0

這取決於您是否希望用戶能夠看到底部屏幕的頂部和底部的一半,或者只有頂部或底部。

您可以嘗試將兩個屏幕內容放入ScrollViewer,並將ScrollViewer.VerticalScrollbarVisibility設置爲False;這將允許用戶在「屏幕」之間輕鬆地拖/滑。

喜歡的東西:

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

有一點要考慮將是否要處理用戶更換手機的方向,或者是否會鎖定手機的肖像/水平方向。我也相信具有不同分辨率的手機最終將被髮布,Windows Marketplace中的任何應用程序都需要能夠處理全分辨率和半分辨率。

+0

我打算以縱向鎖定手機。 處理不同的分辨率不應該是一個問題。 Rob Miles在這裏有一篇很好的文章: http://www.robmiles.com/journal/2010/8/15/understanding-windows-phone-orientation-in-xna.html – anonymouse 2010-09-05 07:12:39

+1

這個答案似乎適用於Silverlight,不是XNA。 – 2010-09-05 07:32:34

+0

那就是我正要寫的東西。在XNA項目中甚至可以使用通用控件。 – anonymouse 2010-09-05 08:00:34

3

你在這裏問了兩個問題。其中的第一個是如何響應觸摸手勢(如滑動)。 This blog post and associated sample is a good starting point

其中的第二個是如何有兩個屏幕。這也很簡單。將翻譯矩陣(Matrix.CreateTranslate)傳遞到SpriteBatch.Begin。你想如何做到這一點取決於你。如果您希望兩個屏幕的屏幕左上角都有(0,0),請爲每個屏幕指定一個平移矩陣,然後向下平移顯示屏的高度。 (雖然屏幕不在視圖中,但您可以完全跳過繪圖。)

當用戶滑動時,只需對翻譯進行動畫處理,以使一個屏幕移出視圖,另一個移動到視圖中。