【发布时间】:2013-02-02 14:03:34
【问题描述】:
我目前正在使用奇妙的 monogame 框架编写游戏。我无法正确响应触摸输入。当用户水平或垂直拖动时,我想每次拖动执行一次操作。问题是每次拖动都会多次发出手势。这是我的代码:
var gesture = default(GestureSample);
while (TouchPanel.IsGestureAvailable)
gesture = TouchPanel.ReadGesture();
if (gesture.GestureType == GestureType.VerticalDrag)
{
if (gesture.Delta.Y < 0)
return new RotateLeftCommand(_gameController);
if (gesture.Delta.Y > 0)
return new RotateRightCommand(_gameController);
}
if (gesture.GestureType == GestureType.HorizontalDrag)
{
if (gesture.Delta.X < 0)
return new RotateLeftCommand(_gameController);
if (gesture.Delta.X > 0)
return new RotateRightCommand(_gameController);
}
出于本示例的目的,我已将所有这些代码移到一个块中。返回的 RotateRightCommand 或 RotateLeftCommand 然后由在屏幕上旋转对象的调用代码执行。这整个代码块正在monogame的更新循环中运行。我认为我在重置触摸输入方面遗漏了一些东西,这就是为什么我一次拖动会返回 3 或 4 个 RotateCommands。我做错了什么?
【问题讨论】:
标签: c# iphone xamarin.ios monogame