2012-11-10 55 views
0

我正在开发Windows应用商店应用。我的应用中有很多可拖动的用户控件(矩形)。如果用户拖动我的控制足够快,控制将消失。否则,它将保持在屏幕上以防止意外删除。如何让我的控件反弹屏幕边缘?

现在我知道如何在ManipulationDelta事件处理程序中获得速度,但是我不知道如何使我的控件从屏幕边缘反弹。

回答

0

问题的复杂性可能因相当多的变量而异。例如,你是否希望盒子彼此旋转/碰撞等。

最完整的解决方案是使用第三方解决方案,例如Box2D(或其用于c#的端口,称为box2dx)。但我不确定是否有可用的Win-RT版本。

如果不使用box2dx之类的东西,你必须推出你自己的物理引擎。要做到这一点,你需要创建一个代码循环,以固定的时间间隔(比如60Hz)进行更新,并检查当时每个矩形的位置和速度。如果你可以设置一个这样的循环,那么你可以使用SUVAT来计算下一帧每个矩形的位置/速度。

+0

谢谢。由于我不需要检测碰撞,因此我在控件中添加了一个“TranslateTransform”并控制其移动,但并不容易。 – greenmoon55