2012-11-10 53 views
0

我正在開發Windows應用商店應用。我的應用中有很多可拖動的用戶控件(矩形)。如果用戶拖動我的控制足夠快,控制將消失。否則,它將保持在屏幕上以防止意外刪除。如何讓我的控件反彈屏幕邊緣?

現在我知道如何在ManipulationDelta事件處理程序中獲得速度,但是我不知道如何使我的控件從屏幕邊緣反彈。

回答

0

問題的複雜性可能因相當多的變量而異。例如,你是否希望盒子彼此旋轉/碰撞等。

最完整的解決方案是使用第三方解決方案,例如Box2D(或其用於c#的端口,稱爲box2dx)。但我不確定是否有可用的Win-RT版本。

如果不使用box2dx之類的東西,你必須推出你自己的物理引擎。要做到這一點,你需要創建一個代碼循環,以固定的時間間隔(比如60Hz)進行更新,並檢查當時每個矩形的位置和速度。如果你可以設置一個這樣的循環,那麼你可以使用SUVAT來計算下一幀每個矩形的位置/速度。

+0

謝謝。由於我不需要檢測碰撞,因此我在控件中添加了一個「TranslateTransform」並控制其移動,但並不容易。 – greenmoon55