我有一个动作,当用户按住他们的手指时,但如何在用户按下他的手指时继续执行此操作?例如,我想:moveRight + = 10;当用户将手指按在屏幕的右侧时,用户不断地进行操作。有谁知道如何在XNA中做到这一点?
答案 0 :(得分:4)
使用mouse input API(在WP7上轻松实现单点触控输入),具体检查:
MouseState ms = Mouse.GetState();
if(ms.LeftButton == ButtonState.Pressed && ms.X > centerOfScreen)
{
DoSomething();
}
或者在WP7上使用touch input API:
TouchCollection touches = TouchPanel.GetState();
foreach(TouchLocation touch in touches)
{
if((touch.State == TouchLocationState.Pressed
|| touch.State == TouchLocationState.Moved)
&& touch.Position.X > centerOfScreen)
{
DoSomething();
break;
}
}
答案 1 :(得分:1)
他们释放手指时是否有动作?如果是这样,那么使用循环结构(游戏循环)并添加一些输入状态,而不是仅响应事件。
查看The docs for Gesture Support for Windows Phone。
您希望处理的“发布”事件可能是ManipulationCompleted
事件。我不知道它是Silverlight还是Silverlight和XNA,但是......
如果失败了,也许你可以处理更低级别的事件。
手势是整套动作的抽象。 API旨在完成搞清楚发生了什么的所有肮脏工作,并告诉你发生了,而不是 发生了什么。如果你想要更精细的颗粒控制,那么你需要一个更细粒度的API。
请参阅:http://msdn.microsoft.com/en-us/library/ff607287(v=VS.95).aspx(可能是the Touch class)。