技术开发 频道

Windows phone开发之:XNA入门指导

  四、INPUT输入方式

  对于Windows Phone7来说与用户的交互方法主要有三种:手势、按键、触控和一些传感器的信号(如重力感应等,对于最后一种,在一起学Windows Phone7开发(十四. Device)中已经详细介绍过了)所以XNA游戏所能用到的交互方式也是一样的。但对于XNA来说与Windows phone7是有很大区别的。其主要的函数在Microsoft.Xna.Framework.Input和Microsoft.Xna.Framework.Input.TouchPanel。

  一.按键:对于按键来说,其实可控的也就只有Back键,其它的两个键是不受控的。

  public void Update()

  {

  
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)//这个是系统填加的

  {

  
//

  }

  }

  二.触控:状态也很少,只有Move、Press、Release这么几种。

  TouchCollection touchState = TouchPanel.GetState();

  foreach (TouchLocation location in touchState)

  {

  switch (location.State)

  {

  
case TouchLocationState.Pressed:

  break;

  
case TouchLocationState.Moved:

  break;

  
case TouchLocationState.Released:

  break;

  }

  }

  三.手势:可以通过手在屏幕上的不同动作来触发不同应用和触控很相似,但是比其状 态要多很多,并且需要指定。

  TouchPanel.EnabledGestures = GestureType.FreeDrag;//用来指定手势,必须要先设定,否则分报错

  
if (TouchPanel.EnabledGestures != GestureType.None)

  {

  switch (TouchPanel.ReadGesture())

  {

  
case GestureType.Tap:

  break;

  
case GestureType.DoubleTap:

  break;

  
case GestureType.FreeDrag:

  break;

  
case GestureType.DragComplete:

  break;

  
case GestureType.Flick:

  break;

  
case GestureType.Hold:

  break;

  
case GestureType.HorizontalDrag:

  break;

  
case GestureType.None:

  break;

  
case GestureType.Pinch:

  break;

  
case GestureType.PinchComplete:

  break;

  
case GestureType.VerticalDrag:

  break;

  }

  }

  }
0
相关文章