Начальное расположение жеста Flick в XNA

Я использую реализацию XNA в MonoGame для создания игры для Windows Phone. Игрок должен иметь возможность перемещать объекты по уровню с помощью жестов. Я использую класс TouchPanel для чтения жестов.

Вот как я инициализирую TouchPanel:

TouchPanel.EnabledGestures = GestureType.Flick;

Вот как я читаю жесты в методе Update:

while (TouchPanel.IsGestureAvailable)
{
    var g = TouchPanel.ReadGesture();
    ...
}

Однако единственным заполненным полем является вектор Delta. Но как мне узнать точку, с которой пользователь начал жест?

Поскольку я хочу, чтобы моя игра была кроссплатформенной, я не могу полагаться на код, отличный от XNA, например на обработчики жестов Silverlight.


person Impworks    schedule 20.07.2013    source источник
comment
В документации XNA говорится, что Flicks не имеют позиционирования, поэтому они ведут себя так, как задумано. Вы проверяли, происходит ли Tap перед Flick? В качестве альтернативы вы можете использовать FreeDrag или TouchPanel.GetState и выполнять свою собственную логику. msdn.microsoft.com/en- мы/библиотека/   -  person craftworkgames    schedule 22.07.2013


Ответы (1)


Использование жеста Flick для перемещения объектов не является хорошей идеей, так как пролистывание не имеет положения.
Вместо этого следует использовать жест Hold или FreeDrag, обнаруживая объект и затем перемещая его по экрану.
Целью пролистывания является просто масштабирование. , Я предлагаю вам выбрать другой жест.

person pinckerman    schedule 20.08.2013