Windows Phone 7 有四种用户交互的方式:

  1. 按键
  2. 触控
  3. 手势
  4. 外设(例如重力感应等)

通常来说Windows Phone 7的按键一般只支持Back按键(返回键)的可控操作,其他的两个是不受控的。

在XNA中会自动的生成这样一段代码,就是表示对Back按键的事件响应。

if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)                  this.Exit();

意思就是当Back按键被按下(Pressed)的时候,退出游戏。这个一般是比较简单的。

一、触控

触控最简单的方式就是直接触碰屏幕,Windows Phone 7最多支持4个触控点.

11在XNA中,需要先获得触控装置的状态,然后才能获得触控点的信息(比如触控ID,坐标信息等)。

取得触控信息的方法是由TouchPanel来控制的。通过是使用TouchPanel的GetState()可获得TouchCollection集合(由于支持至少4点的触控,所以取得是集合),集合中存放的是TouchLocation的结构,有三个成员:

ID:表示触控的代码,每一次触控都会有一个唯一的编号

Position:触控的位置

State:触控的状态

State有以下三种状态:

①Pressed.即当前用户触控的状态是按下(手指按在屏幕上).

②Moved.即当前用户触控的状态是移动(手指按在屏幕上并移动)

③Release.当手指从触摸屏上离开的时候

下面的一个例子可以获取State的三种状态。

首先我们声明一个String类型的全局变量TouchMessage

string TouchMessage="";

然后添加一个SpriteFont文件,用于在屏幕上显示文本

接着添加一个SpriteFont类型的全局变量,用来将spritefont资源加载到内容管道中,以便程序使用。

SpriteFont spritefont;

加载SpriteFont资源

spritefont = Content.Load<SpriteFont>(@"Fonts\SpriteFont");

然后我们需要在Update中添加捕获TouchPanel状态的代码,通过TouchPanel的Getstate()方法实现。

protected override void Update(GameTime gameTime)          {              // Allows the game to exit              if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)                  this.Exit();              // TODO: Add your update logic here              TouchMessage=” ”;              TouchCollection tc = TouchPanel.GetState();  //由于GetState获得是状态的集合,所以需要使用foreach取出其中的每个状态。  //通过tc.Count的属性,可以获得集合的数目              foreach (var location in tc)              {                  TouchMessage + = string.Format(" ID:{0}\n Location:{1}\n Position:{2}\n tc.Count:{3}\r\n", location.Id, location.State, location.Position,tc.Count);                          }              base.Update(gameTime);          }

然后在Draw方法中绘制出SpriteFont。

protected override void Draw(GameTime gameTime)          {              GraphicsDevice.Clear(Color.CornflowerBlue);              spriteBatch.Begin();              // TODO: Add your drawing code here              spriteBatch.DrawString(spritefont, TouchMessage, Vector2.Zero, Color.Black);              spriteBatch.End();              base.Draw(gameTime);          }

当手触碰到屏幕时,第一个状态是Pressed,不过很快会变成Moved,当手放开时会出现Released状态,然后会显示没有信号,即TouchMessage内容为空,因为我们是用鼠标在模拟器上点击,只有一个点,当放开鼠标时,就会没有任何状态所以TouchMessage内容为空。

转载于:https://blog.51cto.com/potential/1402581

Windows Phone 7 中TouchPanel的触控操作相关推荐

  1. mac安装双系统中Windows系统无法识别键盘和触控板

    mac安装双系统中Windows系统无法识别键盘和触控板 浅记一下解决这个问题的过程 mac安装了双系统后,第一次使用没有问题,第二次进入windows系统发现键盘和触控板都没有反应.上网搜索这个问题 ...

  2. Windows Phone 7 XNA触控操作之Gestures

    这一讲我将集中讨论Gestures(手势),以及如何在Silverlight应用程序中使用XNA程序集来简单地识别触控输入. 什么是XNA? 这整个系列的焦点是Silverlight,XNA技术可在W ...

  3. Windows phone 8 学习笔记(1) 触控输入

    Windows phone 8 学习笔记(1) 触控输入 原文:Windows phone 8 学习笔记(1) 触控输入 Windows phone 8 的应用 与一般的Pc应用在输入方式上最大的不同 ...

  4. linux多点触摸屏驱动程序,Linux系统实现支持多点触控操作[视频]

    虽然大多数人目前还不会购买拥有触控屏的设备,不过在Windows 7的大力推动下,触控操作已经开始流行了起来.然而Linux目前却无法支持这一功能,这让很多用户十分郁闷,不过来自ENAC Intera ...

  5. 从应用模式看 计算机应用经历了,触控操作堪比鼠标 Win 10平板电脑体验

    1Windows 10入市 经历种种艰辛 平板用户的操作交互主要是以触控为主,所以更倾向于移动端的iOS与Android更会得到平板用户们的心.反而是一直PC最强操作系统的Windows,只有在使用了 ...

  6. 【Unity3D】利用Touch类编写手游触控操作演示

    目录 1.效果展示 2.博客介绍 3.具体思路和写法 (1)Touch类介绍 (2)编写Touch管理类 (3)修改摇杆控制 4.资源下载 5.推送 6.结语 1.效果展示 2.博客介绍 手游开发和端 ...

  7. Windows XP系统中实用的命令及操作技巧

    Windows XP系统中实用的命令及操作技巧 转贴自:电脑报 想在命令提示符窗口中输入重复命令时,只须按F7键,就会出现图形界面,然后选择你想输入的命令即可. 一"符"安天下利用 ...

  8. windows7中的多点触控中的手势

    每当用户触摸触敏式 Windows 7 设备时,Windows 7 多点触控平台都会向您的应用程序发送手势消息 WM_GESTURE.这是现成的免费行为,如果您希望停止接收此类消息,则需要选择退出. ...

  9. vspy如何在图形面板显示报文_触想激光切割解决方案中嵌入式工业触控显示器有何优势?...

    方案背景 根据专家预测,国内的激光市场仍处于高速的增长阶段.目前国内的激光产业主要在深圳.武汉两地聚集,其中深圳是国内的重要销售市场,并且以多年的发展经验,领先了其他区域. 在激光市场快速增长的趋势下 ...

最新文章

  1. python抠图_python和opencv实现抠图
  2. windows server 2008下搭建DHCP服务器
  3. 贵州省新农合业务系统容灾技术支撑服务项目
  4. Linux操作_常用命令操作练习
  5. SAP UI5 xml view content parse
  6. 【转】漫谈ANN(2):BP神经网络
  7. 2018年AI专业最全报考指南:去哪学?怎么去?
  8. 【HeadFirst设计模式——开篇】
  9. 将csv添加到mysql,将CSV导入到mysql表
  10. 开源 非开源_开源突破“舒适区”
  11. 二叉线索树的先序、中序、后序的线索化及其遍历
  12. rabbitmq channel对象的方法
  13. 这个黑科技耳机方便又时尚,听歌也不怕坐过
  14. 【转】一个小妙招能让你在服装上省下好多rmb
  15. 酷派android升级失败,酷派大神X7刷机失败变砖开不了机 救砖教程
  16. python自带的库有哪些_吐血整理!140种Python标准库、第三方库和外部工具都有了...
  17. 家庭监控,网络摄像头(OpenWRT平台下Mjpg-Streamer+Ngrok实现方案)
  18. 怎样批量将图片转成PDF格式?图片转换PDF操作方法
  19. 新款 2018款macbook Pro 装双系统教程
  20. 主板上集成显卡的计算机在进行显示工作,电脑显卡怎么看

热门文章

  1. 光纤光信号闪红灯_电信光纤猫光信号闪红灯怎么办 电信光纤猫光信号闪红解决方法...
  2. 刷下拉框diyiming好_决斗学院全新版本辅助一次性800号自动切换刷神器
  3. EBS R12基本概念与应用基础
  4. 波形发生器设计(频率、占空比、幅值可调)
  5. super-tinypng压缩图片
  6. 2022年5月5日-6日 复盘计划
  7. c++ 45行代码实现 生命游戏-细胞自动机!!!
  8. 深聊全链路压测之:第二十四讲 | 分布式调度平台的选型与落地。
  9. 在网页title加入icon图标
  10. AD14软件导入BRD不成功