一起学WP7 XNA游戏开发(四. Input)

本文介绍了Windows Phone 7上XNA游戏的交互方式,包括按键、触控及手势识别等,提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

public void Update()

        {

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

               {

                                     //…

}

}

 

二.触控:状态也很少,只有MovePressRelease这么几种。

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;

                    }

                }

 

}

 

 

示例代码 http://www.daisy123.com/?page_id=275 xna input

 

转载于:https://www.cnblogs.com/randylee/archive/2010/11/09/1872393.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值