我想通过保持在gestureSample对象中返回的delta的总和来保持用户拖动屏幕的像素数量,但这些delta似乎不一致:
EnabledGestures = GestureType.HorizontalDrag | GestureType.DragComplete;
foreach (GestureSample gestureSample in input.Gestures)
{
if (gestureSample.GestureType == GestureType.HorizontalDrag)
{
_dragOffset += gestureSample.Delta.X;
System.Diagnostics.Debug.WriteLine("drag: " + _dragOffset + " - delta: " + gestureSample.Delta + " pos; " + gestureSample.Position);
}
}
上面的代码显示以下内容:
GestureSample的绝对位置移动了-7像素,但delta仅报告-2!
这在仿真器上作为真正的WP7设备发生。我对delta的解释是否错误,我不应该依赖它吗?
答案 0 :(得分:2)
我发现了这个问题:我没有处理从TouchPanel读取的所有手势。在1个游戏周期中,可以并且将记录多个HorizontalDrag手势;它们不会合并成1个手势。
解决方案:确保查看所有GestureSamples。