zoukankan      html  css  js  c++  java
  • 一起学WP7 XNA游戏开发(四. Input)

         对于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

     

  • 相关阅读:
    inux按照CPU、内存、磁盘IO、网络性能监测
    监控数据库
    NMON监控工具
    AJAX
    性能经验之谈【转】
    内存/硬盘/io关系
    testng中添加案例失败重试次数
    如何使用beanshell写入数据到文件(txt、csv)
    Docker 容器中配置nginx后报403 Forbidden 解决办法
    Centos7创建支持ssh服务器的docker容器
  • 原文地址:https://www.cnblogs.com/randylee/p/1872393.html
Copyright © 2011-2022 走看看