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

     

  • 相关阅读:
    使用序列化实现对象的拷贝
    理解 Java 的三大特性之多态
    LeetCode OJ:Add and Search Word
    关于Qt的事件循环以及QEventLoop的简单使用
    LeetCode OJ:Generate Parentheses(括号生成)
    LeetCode OJ:Maximal Square(最大矩形)
    LeetCode OJ:Range Sum Query 2D
    LeetCode OJ:Power of Two(2的幂)
    LeetCode OJ:Longest Increasing Subsequence(最长递增序列)
    LeetCode OJ:Ugly Number II(丑数II)
  • 原文地址:https://www.cnblogs.com/randylee/p/1872393.html
Copyright © 2011-2022 走看看